我正在尝试使用无法直接访问的 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
有什么想法可以让它通过图形提示工作吗?
答案1
这个答案来自超级用户的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 中)。