Làm cách nào để chỉ định khóa trong SSHFS?


70

Tôi đã có một câu hỏi mà tôi không thể tìm thấy câu trả lời. Tôi có hai máy tính, cả hai đều chạy Ubuntu Linux 12.04. Tôi đã thiết lập máy tính đầu tiên của mình ("nhà") để có thể SSH vào máy tính thứ hai ("từ xa") bằng cách sử dụng xác thực khóa RSA công khai / riêng tư.

Đây không phải là kết nối SSH đầu tiên được thiết lập bằng xác thực khóa trên máy tính ở nhà của tôi, vì vậy máy tính ở nhà của tôi có một số khóa riêng tư id_rsa (mỗi khóa dành cho một máy tính khác nhau để SSH vào). Vì vậy, tôi chỉ có thể SSH thành công khi tôi chỉ định một keyfile (trong ssh, -itùy chọn), bằng cách sử dụng ssh username@ipaddress -i path/to/keyfile/id_rsa.2.

Điều đó làm việc tuyệt vời. Tuy nhiên, tôi cũng muốn sử dụng sshfs, nó gắn kết hệ thống tập tin từ xa. Mặc dù sshcó vẻ chơi tốt với nhiều khóa, tôi không thể tìm cách sshfssử dụng khóa riêng đúng ("id_rsa.2").

Có cách nào sshfsđể làm điều này?


Keychain hoạt động tốt với tôi trong kịch bản này ...
jasonwryan

Câu trả lời:


94

Đây là những gì làm việc cho tôi:

sshfs me@x.x.x.x:/remote/path /local/path/ -o IdentityFile=/path/to/key

Bạn có thể tìm ra điều này thông qua man sshfs:

-o SSHOPT = VAL ssh tùy chọn (xem man ssh_config)

man ssh_config

Danh tính

Chỉ định một tệp mà từ đó nhận dạng xác thực DSA, ECDSA hoặc DSA của người dùng được đọc.


1
Cảm ơn bạn! @goldilocks, tôi đã hoàn toàn bỏ lỡ dòng IdentityFile trong sshfstrang man. Đó chính xác là những gì tôi đang tìm kiếm. Tôi vừa thử giải pháp của bạn, và nó hoạt động hoàn hảo. Tôi đánh giá cao sự giúp đỡ!
JL

1
Lệnh này không hoạt động trên macOS Sierra
basZero

1
IdentityFilelưu ý đường dẫn. Nếu chạy sshfsvới sudo, sử dụng ~trong IdentityFileđường dẫn đề cập đến nhà của root, có thể không phải là nơi chứa tệp RSA. Sử dụng một cái gì đó như /Users/<username>/.sshthay thế.
Aaron

20

Những gì bạn cần làm là chỉ định khóa riêng nào sẽ được sử dụng trong ~/.ssh/configtệp. ví dụ:

Host server1.nixcraft.com
    IdentityFile ~/backups/.ssh/id_dsa
Host server2.nixcraft.com
    IdentityFile /backup/home/userName/.ssh/id_rsa

1
Cám ơn rất nhiều! @Steven Bạn, tôi đã không nhận ra rằng sshfsđọc các tệp .ssh / config (mặc dù bây giờ tôi thấy rằng tôi đã bỏ lỡ một câu trả lời tương tự từ bài viết trước của ai đó, tại stackoverflow.com/a/13638806/1940466 ). Đó là điều tuyệt vời để biết. Đối với những gì nó có giá trị, tôi muốn chấp nhận câu trả lời của cả bạn và @goldilocks, nhưng tôi không thể. Tôi cũng không có đủ danh tiếng để bỏ phiếu cho câu trả lời của bạn. Tôi rất đánh giá cao câu trả lời, mặc dù!
JL

3
sshfs -o ssh_command='ssh -i path/to/keyfile/id_rsa.2' username@ipaddress:/path /local/path

cảm ơn câu trả lời này đã giúp tôi trên Arch Linux vì đã cài đặt hệ thống tệp android
Edward Torvalds
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.