我试图使用不可直接访问的SSHFS挂载远程磁盘,也就是说,我需要使用代理,比如local -> proxy -> remote
。我用的都是基于密钥的方式。以下命令起作用:
sshfs -o IdentityFile='[PATH_TO_KEY_FOR_REMOTE]' -o ProxyCommand='ssh -q -i [PATH_TO_KEY_FOR_PROXY] -W %h:%p [PROXY_USER]@[PROXY]' [REMOTE_USER]@[REMOTE]:[SOURCE] [DESTINATION]
不幸的是,我无法让它作为/etc/fstab
中的一个条目工作;当前的一个条目是:
[REMOTE_USER]@[REMOTE]:[SOURCE] [DESTINATION] fuse.sshfs delay_connect,rw,noauto,_netdev,reconnect,ProxyCommand='ssh -q -i [PATH_TO_KEY_FOR_REMOTE] -W %h:%p [PROXY_USER]@[PROXY]',ServerAliveInterval=15,ServerAliveCountMax=3,IdentityFile=[PATH_TO_KEY_FOR_REMOTE]' 0 0
但是在运行mount [DESTINATION]
时,我会得到一个错误:
mount: /etc/fstab: parse error at line X -- ignored
我尝试用ProxyCommand
替换ProxyJump
,如下所示:
[REMOTE_USER]@[REMOTE]:[SOURCE] [DESTINATION] fuse.sshfs delay_connect,rw,noauto,_netdev,reconnect,ProxyJump=[PROXY_USER]@[PROXY],ServerAliveInterval=15,ServerAliveCountMax=3,IdentityFile=[PATH_TO_KEY_FOR_REMOTE]' 0 0
这适用于命令行版本,而且mount [DESTINATION]
不报告错误,但在尝试访问它时,我一直获得Input/output error
。
另一方面,当使用mount [DESTINATION]
时(如果代理的密钥文件已添加到SSH代理中),下面的内容可以工作,但如果以图形方式挂载远程(XFCE 4),我仍然会收到密码提示(用于代理):
[REMOTE_USER]@[REMOTE]:[SOURCE] [DESTINATION] fuse.sshfs rw,noauto,_netdev,ProxyJump=[PROXY_USER]@[PROXY],IdentityFile=[PATH_TO_KEY_FOR_PROXY],IdentityFile=[PATH_TO_KEY_FOR_REMOTE] 0 0
有什么想法可以让它通过图形提示工作吗?
发布于 2022-07-05 15:18:18
来自这个答案的superuser.SE有正确的想法;我不得不做一些修改,但正确的配置似乎是(需要OpenSSH 7.3或更高版本):
~/.ssh/config
Host remote
ProxyJump proxy
HostName [REMOTE]
User [REMOTE_USER]
IdentityFile [PATH_TO_KEY_FOR_REMOTE]
Host proxy
HostName [PROXY]
User [PROXY_USER]
IdentityFile [PATH_TO_KEY_FOR_PROXY]
/etc/fstab
remote:[SOURCE] [DESTINATION] fuse.sshfs rw,noauto,_netdev 0 0
由于之前的连接尝试不成功,gvfsd
挂起了文件管理器,所以我还必须执行killall gvfsd
,这就完成了这个任务,现在我可以自动挂载远程设备,而不会出现问题(使用mount [DESTINATION]
和GUI)。
https://unix.stackexchange.com/questions/708685
复制相似问题