1

我使用 连接到我的家庭服务器ssh server,其中服务器配置~/.ssh/config为:

Host server
    HostName {server-address}
    User me
    IdentityFile ~/.ssh/id_rsa

IdentityFile是受密码保护的私钥,所以我每次登录时都必须输入密码。

我可以使用sshfs me@{server-address}:/home/me /mnt/server. 再一次,我必须输入我的密码才能使用我的私钥登录。我注意到我不需要在sshfs选项中实际指定键 - 大概~/.ssh/id_rsa只是默认位置?

最后,为了轻松挂载系统,我将以下行添加到/etc/fstab

me@{server-address}:/home/me  /mnt/server  fuse.sshfs  IdentityFile=/home/me/.ssh/id_rsa,defaults,noauto 0 0

这让我可以简单地运行mount /mnt/server来挂载文件系统——当然,我被要求输入密码。

请注意,我添加了该noauto选项,以便它不会在启动时挂载,因为我担心如果没有密码就无法挂载文件系统,系统会挂起。

我的怀疑就在这里吗?如果系统尝试挂载服务器文件系统,但没有获得密码,系统会无法启动吗?有没有办法可以向/etc/fstab/mount命令提供密码,以便它能够在启动时启动文件系统?

4

1 回答 1

0

我不知道这个“解决方案”是否值得回答,但我是这样解决的:

我只是用来ssh-keygen生成另一个密钥(即/home/user/.ssh/id_rsa_no_passphrase)并且没有给那个密钥一个密码。然后我ssh-copy-id把它上传到我的远程服务器。
在更改我的 fstab 条目以引用 -field 中的新公钥后,IdentityFile它可以完美运行,现在会在启动时自动挂载文件系统。

这是最终的 fstab 条目:

# sshfs
USER@SERVER:/home/sshfs /mnt/ssh    fuse.sshfs  defaults,_netdev,allow_other,default_permissions,identityfile=/home/USER/.ssh/id_rsa_no_passphrase,uid=UID,gid=GID    0   0

它可能不是问题的确切解决方案,但它似乎是一个有效的解决方法!

于 2022-01-03T15:42:34.657 回答