Ubuntu 22.04下通过fstab使用fuse.sshfs挂载远程目录时指定密钥仍需输入密码的问题及后续疑问
Ubuntu 22.04下通过fstab使用fuse.sshfs挂载远程目录时指定密钥仍需输入密码的问题及后续疑问
我在Ubuntu 22.04系统上尝试通过fstab配置fuse.sshfs挂载远程存储目录,一开始写的fstab条目是这样的:
some_user@some_storagebox.com:~/somedir /mnt/volume fuse.sshfs defaults,allow_other,reconnect,_netdev,users,ServerAliveInterval=15,identityfile=/root/.ssh/id_rsa,uid=101,gid=101,ServerAliveCountMax=3 0 0
我用mount /mnt/volume命令测试挂载,可明明已经通过identityfile参数指定了RSA密钥,远程存储还是要求我输入密码。我怀疑是不是uid、gid这两个参数出了问题,或者还有其他我没注意到的配置项,完全搞不清状况。
问题排查与解决过程
后来参考@Nikita Kipriyanov的建议,我直接用ssh命令测试连接:ssh -i /root/.ssh/id_rsa some_user@some_storagebox.com,这才发现之前连接这个存储端的时候用的是23端口,我居然把这个关键配置给漏掉了!
于是我把port=23参数加到了fstab条目里,但挂载又失败了,提示~/somedir目录找不到。之后我把路径改成了绝对路径/home/somedir,再尝试挂载就完全正常了。最终调整后的fstab条目如下:
some_user@some_storagebox.com:/home/somedir /mnt/volume fuse.sshfs defaults,allow_other,reconnect,_netdev,users,ServerAliveInterval=15,port=23,identityfile=/root/.ssh/id_rsa,uid=101,gid=101,ServerAliveCountMax=3 0 0
遗留疑问
现在挂载是正常了,但有个问题让我特别困惑:为什么之前没指定端口、需要手动输密码的时候,用~/somedir这种波浪号缩写的路径就能成功挂载,而加上端口、改用密钥登录后,波浪号路径就找不到了呢?
备注:内容来源于stack exchange,提问作者fueggit
相关产品推荐
相关产品推荐

