如何在SSHFS中指定密钥?


69

我有一个问题,无法找到答案。我有两台计算机,都运行Ubuntu Linux 12.04。我已经设置了我的第一台计算机(“家庭”),以便能够使用公共/私有RSA密钥身份验证通过SSH进入第二台计算机(“远程”)。

这不是我的家用计算机上使用密钥身份验证建立的第一个SSH连接,因此我的家用计算机具有多个id_rsa私钥文件(每个私钥文件都用于SSH进入的另一台计算机)。因此,我能够成功SSH只有当我指定一个密钥文件(中ssh,该-i选项),使用ssh username@ipaddress -i path/to/keyfile/id_rsa.2

效果很好。但是,我也想使用sshfs挂载远程文件系统。虽然ssh似乎可以使用多个键,但是我找不到找到sshfs使用正确私钥(“ id_rsa.2”)的方法。

有没有办法sshfs做到这一点?


在这种情况下,钥匙串对我来说效果很好...
jasonwryan

Answers:


94

这对我有用:

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

您可以通过以下方式解决man sshfs

-o SSHOPT = VAL ssh选项(请参见man ssh_config)

man ssh_config

身份文件

指定从中读取用户的DSA,ECDSA或DSA身份验证标识的文件。


1
谢谢!@goldilocks,我完全错过了sshfs手册页中的IdentityFile行。这也是我一直在寻找的东西。我刚刚尝试过您的解决方案,并且效果很好。感谢您的帮助!
JL 2013年

1
此命令在macOS Sierra上不起作用
basZero

1
IdentityFile路径说明。如果sshfs与一起运行sudo,则~IdentityFile路径中使用指的是root的主目录,该目录可能不在RSA文件所在的目录中。使用类似的东西/Users/<username>/.ssh
亚伦

19

您需要指定在~/.ssh/config文件中使用哪个私钥。例如:

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

非常感谢!@Steven You,我没有意识到它可以sshfs读取.ssh / config文件(尽管我现在确实看到我错过了某人以前的文章中的类似答案,该错误位于stackoverflow.com/a/13638806/1940466)。很高兴知道。对于它的价值,我想接受您和@goldilocks的回答,但我不能。我也没有足够的声誉来投票赞成你的答案。不过,我非常感谢您的回答!
JL 2013年

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

感谢这个答案为我在Arch Linux上为安装Android文件系统而工作
Edward Torvalds
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.