通过 2 个 SSH 隧道挂载远程文件系统

通过 2 个 SSH 隧道挂载远程文件系统

作为一名大学生,我被允许在家使用学校的计算机进行工作。但是,为了实现这一点,我必须通过 SSH 连接到大学的通用服务器,然后再通过 SSH 连接到 CIS 部门的服务器。

我想要做的是访问 CIS 服务器上的文件,然后使用 gEdit 等图形文本编辑器对其进行处理。

换句话说,我需要:

ssh general.server.com -l username 

然后

ssh cis.server.com

并且我想要安装cis.server.com。

任何帮助将不胜感激。

答案1

虽然效率有点低(系统工作更辛苦),但您可以通过 SSH 将端口转发到内部框。使用以下命令将内部服务器上运行的任何端口 SSH 转发到本地计算机上的任何高端口。

ssh -C -f -g -N -x -L<localport>:<internalserver>:<port_you_run_ssh_on> username@gateway

然后您可以使用 sshfs 在 localport 上挂载 localhost。

这将为您提供后台 SSH 连接。我通常会为第一部分(直到 -x)创建一个别名,这样我就不必每次需要设置连接时都输入它们。

或者,您也可以使用上述方法设置 SSH 隧道,然后使用 X 转发进行 ssh,或者通过 sftp 将文件传输到本地机器并进行编辑。

如果您只需要编辑文本文件,请考虑学习如何使用基于控制台的文本编辑器(如 Vim 或 Emacs)——它们很棒,功能强大,并且有您以后可以使用的 GUI 版本。然后直接在远程系统上编辑即可。我自己更喜欢 Vim。

答案2

在您的客户端的 ssh 配置中建立一个配置。

Host aliasforsystem
    ProxyCommand /usr/bin/ssh [email protected] "/bin/netcat -w 1 cis.server.com 22"

然后只需 ssh 到aliasforsystem即可。您应该能够直接挂载该别名。如果您设置了 ssh 密钥,那么应该非常简单。不过,您确实需要通用系统安装 netcat 或类似的东西。

您还可以建立隧道,从一条连接开始,将端口转发到内部设备。保持该端口打开,然后通过端口转发连接到内部系统。

相关内容