在 Mac 上通过代理/SSH 隧道进行双密钥 SFTP 连接

在 Mac 上通过代理/SSH 隧道进行双密钥 SFTP 连接

因此,我需要连接到一个 SFTP 服务器,该服务器仅将我有权访问的远程机器(称为此机器mysafeserver)的 IP 地址列入白名单。

因此,要连接到 SFTP 服务器,我运行:

ssh mysafeserver
> sftp -P 10023 [email protected]
...

这里的不便之处在于我需要经常访问该服务器,并且使用双密钥认证过程(即私钥和密码),因此通过命令行执行此操作非常烦人。

在大多数情况下我使用菲利兹拉, 但菲利兹拉没有给我通过 SSH 代理的选项mysafeserver

我的问题是,除了菲利兹拉支持这一点,如果不支持,那么建立隧道的最简单方法是什么,例如菲利兹拉可以访问该服务器。

我知道该ssh命令,但这似乎涉及端口映射内容,我不确定这是否正是我所寻找的。

谢谢

答案1

我不知道还有哪个客户端可以处理这样的多跳连接。这里似乎需要某种形式的隧道/代理。

ssh -L10023:myremoteserver.com:10023 mysafeserver

此时,执行身份验证,并让 shell 会话保持运行。如果 shell 设置为空闲时注销,可以使用“read”命令让 shell 等待输入。

然后在 Filezilla 中,连接到 localhost 的 10023 端口,就像连接到 myremoteserver.com 一样。Filezilla 将接受 myremoteserver.com 上的身份验证。

答案2

是的!昨天有人告诉我有一个选项。我不擅长这个,但它就像梦一样有效。使用 OSXFuse,您可以将双跳远程服务器作为卷(您可以随意命名)安装在 Finder 上(在下面的示例中,我将其称为 VOLNAME)。

去做这个。

1)安装OSXFuse

2)安装sshfs

然后您可以使用本地安装远程目录

sshfs -o ssh_command='ssh -t USERNAME@MYSAFESERVER ssh' -o volname=VOLNAME -o defer_permissions USERNAME@REMOTESERVER:PATH_TO_REMOTE_DIRECTORY PATH_TO_LOCAL_ MOUNT

将所有大写字母替换为您的信息,即可。

我发现有时当我重新启动时,挂载会丢失,你必须使用

卸载PATH_TO_LOCAL_MOUNT

但是在您安装一次之后,可以通过将两个命令放在一个可以调用的 .sh 文件中来解决。

相关内容