作为一名大学生,我被允许在家使用学校的计算机进行工作。但是,为了实现这一点,我必须通过 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 或类似的东西。
您还可以建立隧道,从一条连接开始,将端口转发到内部设备。保持该端口打开,然后通过端口转发连接到内部系统。