2008-09-04 46 views
12

Tôi đã kết nối với máy chủ qua SFTP bằng FileZilla và chấp nhận thêm khóa SSH của máy chủ vào bộ đệm khóa trong FileZilla.Làm thế nào để trích xuất khóa SSH SFTP từ bộ đệm khóa chính trong FileZilla FTP Client

Làm cách nào tôi có thể trích xuất khóa được lưu trong bộ nhớ cache này thành tệp khóa để có thể sử dụng khóa thông qua các ứng dụng SFTP khác yêu cầu tệp keyfile được cung cấp?

Tôi không thể tìm thấy bất kỳ thứ gì trong tài liệu FileZilla liên quan đến điều này.

+0

Kết quả cuối cùng tôi chụp hình cho là thực hiện SFTP qua Java bằng thư viện từ EnterpriseDT.com. Một phần API của họ yêu cầu cung cấp tệp khóa hoặc chính văn bản khóa khi kết nối. Tôi dường như không thể tìm thấy thông tin mặc dù về cách kéo thông tin quan trọng từ máy chủ SFTP mà tôi đang cố gắng kết nối để tôi có thể lưu thông tin đó. Ý tưởng? –

Trả lời

12

Nếu bạn sử dụng trình khách bàn điều khiển openssh chuẩn (cygwin hoặc từ linux), các khóa máy chủ được lưu trữ, một dòng trên, trong ~/.ssh/known_hosts. Từ đó, nó là một vấn đề đơn giản của việc tìm ra bit của khóa máy chủ đó là cần thiết cho thư viện của bạn.

Putty cũng lưu trữ các khóa máy chủ, nhưng nó dường như mã hóa chúng trong hex. Bạn có thể tìm thấy những thông tin này tại HKCUR \ Software \ SimonTatham \ PuTTY \ SshHostKeys

0

Trừ khi tôi hiểu nhầm bạn: bạn không cần.

Nếu bạn kết nối với máy chủ bằng một ứng dụng khác (ví dụ: PuTTY) và nó chưa thấy máy chủ trước đó thì bạn sẽ được nhắc chấp nhận khóa.

Tôi hiểu tại sao bạn có thể muốn làm điều này, nhưng mỗi ứng dụng có thể có cách riêng để lưu trữ khóa.

+0

Vì anh ấy viết ứng dụng của riêng mình trong Java. – PRMan

5

Thomas là chính xác. FileZilla piggybacks trên chương trình PSFTP của PuTTY và lưu trữ các khóa đã lưu được mã hóa ở định dạng hex ở khóa đăng ký mà anh đã liệt kê (HKCUR \ Software \ SimonTatham \ PuTTY \ SshHostKeys). Tôi cần chìa khóa ở định dạng known_hosts, vì vậy tôi có thể cài đặt một windows version of openssh tại khuyến nghị của mình và sử dụng công cụ ssh-keyscan để đạt máy chủ và lưu các thông tin quan trọng trong định dạng đúng:

ssh-keyscan -t rsa <my_ftp_ip_address> > c:\known_hosts 
ssh-keyscan -t dsa <my_ftp_ip_address> > c:\known_hosts 

Cảm ơn bạn Thomas và SO!

5

Cảm ơn Dougman về mẹo!

Để trợ giúp thêm cho bất kỳ người mới đọc câu trả lời của bạn.
Trước khi chạy ssh-keyscan, giả sử openssh được cài đặt theo mặc định, có một vài lệnh cần được chạy (đọc cài đặt quickstart/readme để biết chi tiết).
Dưới đây là các lệnh của tôi cho phép tôi lấy khóa máy chủ.

C:\Program Files\OpenSSH\bin>mkgroup -l >> ..\etc\group 
C:\Program Files\OpenSSH\bin>mkpasswd -l >> ..\etc\passwd 
C:\Program Files\OpenSSH\bin>net start opensshd 
The OpenSSH Server service is starting. 
The OpenSSH Server service was started successfully. 
C:\Program Files\OpenSSH\bin>ssh-keyscan -t rsa vivo.sg.m.com > c:\known_hosts 
vivo.sg.m.com SSH-2.0-Sun_SSH_1.1 
Các vấn đề liên quan