我正在尝试在 fstab 中设置 sshfs 挂载,以持久挂载必须通过 ssh 隧道访问的网络目录。
我的.ssh/config
样子是这样的:
Host A
Hostname outer.server
User <user>
IdentityFile /home/<user>/.ssh/id_rsa
ForwardAgent yes
Host B
Hostname inner.server
User <user>
IdentityFile /home/<user>/.ssh/id_rsa
ProxyCommand ssh -q A "nc %h %p"
ForwardAgent yes
这工作正常:
sshfs B:/home/<user>/ /mnt/B
在 fstab 中这不会
sshfs#B:/home/<user>/ /mnt/B fuse.sshfs defaults,idmap=user,allow_other,reconnect,_netdev,users 0 0
并且,mount -a
更新后运行whenfstab
以使更改生效返回:
read: Connection reset by peer
我欢迎任何关于为什么 fstab 版本可能无法工作的建议。
答案1
root 看不到您的每用户 ssh 配置文件。您需要将其放置在根主目录 ( /root/
) 中或放置在 中的系统范围配置文件中/etc/ssh/ssh_config
,假设身份验证密钥未加密(没有密码)。
您还可以通过扔掉 netcat 并直接在 SSH 中使用 -W 开关进行 IO 转发来省去很多麻烦,或者如果您有足够新的 OpenSSH,则可以仅使用 ProxyJump 选项(有关详细信息,请参阅手册)。
并且还删除ForwardAgent yes
.您不需要它做任何事情,它只是将您的私钥暴露给服务器。