Cách sử dụng lệnh openssh sftp với khóa RSA / DSA được chỉ định từ dòng lệnh


35

Lệnh Openssh ssh và scp đã chứng minh một -itùy chọn dòng lệnh để chỉ định đường dẫn đến khóa RSA / DSA sẽ được sử dụng để xác thực.

Nhìn vào các trang man sftp tôi không thể tìm ra cách chỉ định khóa RSA / DSA.

Tôi đang tìm cách để bắt đầu một phiên sftp sẽ sử dụng khóa RSA / DSA được chỉ định, chứ không phải các khóa ~ / .ssh / id_ {dsa, rsa}.

Tôi đã thử OpenSSH sftp client trên Linux ... nhưng nó sẽ có cùng tùy chọn trên các nền tảng khác.


2
Vui lòng chỉ định ứng dụng khách sftp nào bạn đang sử dụng trên nền tảng nào.
dmourati

Câu trả lời:


41

Một lựa chọn tiềm năng là sử dụng sftp -oIdentityFile=/path/to/private/keyfile. Cần thêm thông tin để nói liệu điều đó sẽ làm việc cho bạn. Có vẻ như hoạt động theo Mac / Linux.


11

Bạn chỉ có thể sử dụng -iđối số cho lệnh sftp hoặc ssh của bạn.

sftp -i /path/to/private/keyfile ...

Nếu tùy chọn -i không khả dụng, bạn có thể sử dụng tùy chọn -o với cú pháp như:

sftp -oIdentityFile=/path/to/private/keyfile ...

4
sftp không có tùy chọn -i có lẽ là lý do tại sao OP đặt câu hỏi.
user9517 hỗ trợ GoFundMonica

hoạt động trong máy chủ Linux của tôi nhưng không phải máy tính xách tay Mac của tôi nơi tùy chọn -i dường như không tồn tại.
dmourati

Các máy chủ Ubuntu và CentOS của tôi không có công tắc -i cho sftp
user9517 hỗ trợ GoFundMonica

Ứng dụng khách CentOS của tôi thực hiện: [dmourati @ flexo ~] $ cat / etc / redhat-phát hành CentOS phát hành 5.6 (Final) [dmourati @ flexo ~] $ which ssh / usr / bin / ssh [dmourati @ flexo ~] $ which sftp / usr / bin / sftp [dmourati @ flexo ~] $ rpm -qf / usr / bin / sftp openssh-client-4.3p2-72.el5 [dmourati @ flexo ~] $ man sftp [dmourati @ flexo ~] $ man sftp head SFTP (1) Hướng dẫn về lệnh chung của BSD SFTP (1) NAME sftp - chương trình truyền tệp an toàn SYNOPSIS sftp [-1246Cpqrv] [-B buffer_size] [-b batchfile] [-c crypt] [-D sftp_server_path ] [-i nhận
dạng_file

1
@dmourati: Và của tôi không [iain @ centos ~] $ which ssh / usr / bin / ssh [iain @ centos ~] $ which sftp / usr / bin / sftp [iain @ centos ~] $ rpm -qf / usr / bin / sftp openssh-client-4.3p2-72.el5_6.3 [iain @ centos ~] $ man sftp | head SFTP (1) Hướng dẫn về lệnh chung của BSD SFTP (1) NAME sftp - chương trình truyền tệp an toàn SYNOPSIS sftp [- 1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num numquests] [-S chương trình] [-s subsystem | sftp_server] lưu trữ sftp [[user @] host [: file [file]]]
user9517 hỗ trợ GoFundMonica

8

Bạn có thể tạo một tệp cấu hình thay thế cho kết nối và sử dụng công -Ftắc để báo cho ssh sử dụng. tạo một tệp cấu hình, ví dụ ~ / .ssh / config.sftp với nội dung

Host remote.host.tld
User RemoteUserName
IdentityFile /path/to/atlernate/identityfile

sau đó gọi sftp như vậy

sftp -F ~/.ssh/config.sftp remote.host.tld
Connecting to remote.host.tld...
Enter passphrase for key '/path/to/atlernate/identityfile':
sftp>

Cấu hình ở trên giới hạn việc sử dụng khóa thay thế (khi tệp cấu hình này được sử dụng) cho người dùng RemoteUserName trên remote.host.tld.

Hãy xem trang man cho ssh_confg để sử dụng tệp cấu hình thay thế


Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn! Giải pháp của bạn cung cấp một sự thay thế rõ ràng cho các đối số dòng lệnh. Hiện tại, tôi thích chuyển tất cả các đối số thông qua dòng lệnh, vì tôi đã sử dụng -oPort = ALT_PORT.
Adi Roiban
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.