在 nautilus 中,连接到位于另一个 ssh 服务器后面的 ssh 服务器时出现问题

在 nautilus 中,连接到位于另一个 ssh 服务器后面的 ssh 服务器时出现问题

所以我有这个学校服务器,我正尝试通过 nautilus 连接它。在终端中一切都很容易,但我希望能够在 nautilus 中打开它。

在终端我的做法是这样的:

ssh [email protected]

现在我已连接到那里,我可以ssh myUser2.my.server2.com在该服务器内部连接到服务器 2。我无法直接连接到服务器 2。必须像我现在所做的那样进行操作。

因此,现在我只能通过输入以下命令来连接到 nautilus 中的第一个服务器ssh://[email protected]

但是我如何从那里连接到 server2?

答案1

如果你的第一个 SSH 服务器 ( my.server.com) 支持TCP 端口转发,您可以通过以下方式转发本地系统上的端口 ( localhost) :my.server2.commy.server.com

ssh -fNL 2022:my.server2.com:22 [email protected]

这会将端口 2022 转发localhost到 上的端口 22。my.server2.com然后,您可以直接连接到第二台服务器:

ssh myUser2@localhost:2022

在 Nautilus 中,您可以使用 进行连接ssh://myUser2@localhost:2022


这些-fN标志将 SSH 发送到后台,并在关闭时产生问题。有三种解决方法:

自动关闭

ssh -fNL 2022:my.server2.com:22 [email protected] sleep 10

现在,在 sleep 命令执行完毕(10 秒)之前使用 Nautilus 进行连接。只要 Nautilus 处于连接状态,连接就会保持活动状态。完成后,断开与 Nautilus 的连接,连接就会停止。

让命令等待输入

ssh -tL 2022:my.server2.com:22 [email protected] 'read -p"Press Enter to exit: "'

read命令将等待输入。Enter完成后按 关闭连接。

查找连接进程并终止它

pgrep -fa fNL

这将显示fNL命令行中的所有进程(应该只有您的 SSH 连接进程)。kill如果有多个进程,则显示正确进程的 PID,或者使用pkill如果只有一个进程:pkill -f fNL 对于已经使用建立的连接,这几乎是唯一的选项-fN

不运行任何命令,照常退出

ssh -L 2022:my.server2.com:22 [email protected]

这将打开一个普通 shell,您可以像平常一样退出。

相关内容