使用 SSHFS 和代理挂载 /etc/fstab 中的条目

使用 SSHFS 和代理挂载 /etc/fstab 中的条目

我正在尝试使用无法直接访问的 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 中)。

相关内容