一个 SSH 连接有多个命令提示符吗?

一个 SSH 连接有多个命令提示符吗?

我需要vim在远程服务器上做很多事情,需要通过 SSH 进入。我发现最好能在桌面上的多个窗口中查看多个文档,因此为此我打开了两个或三个到远程服务器的 SSH 会话。但这有点繁琐,因为我必须多次重新输入 un/pw,并且我必须确保每个窗口都保持足够活跃以防止自动注销。

有没有办法通过 SSH 进入一次然后将其搭载到不同的终端窗口上?(我主要使用 OSX 和 Ubuntu)。

答案1

Screen 和 tmux 为您提供了您正在寻找的答案,但为了稍微扩展您的问题,我建议您研究一下基于 SSH 密钥的身份验证的问题,这样您每次通过 SSH 进入远程服务器时都不需要用户名和密码:-)

答案2

另一个可能的替代方法是使用 sshfs。

sshfs 可让您通过 ssh 远程挂载远程计算机上可访问的任何目录,作为您计算机上的卷。效果很好。这样做的好处是,您可以像处理本地文件一样处理远程计算机上的所有文件。总的来说,它比 screen 更易于使用 - 您登录一次,然后对远程文件执行的任何其他操作都将像处理本地文件一样。

您的另一个选择是使用 vim 的功能通过 ssh 编辑远程文件。请参见此处:http://vim.wikia.com/wiki/Editing_remote_files_via_scp_in_vim

答案3

这并非你所要求的,但是 GNU屏幕实用程序可让您在单个窗口中拥有多个虚拟终端。它还可以防止连接中断,因为您可以重新连接到断开连接的屏幕会话。

答案4

您可以通过单个 SSH 连接运行多个 SSH 会话,方法是将第一次登录(设置连接)作为控制主机,然后让后续的 SSH 调用联系控制主机并通过主机已验证的连接转发其会话。

使用配置文件中的以下命令执行此操作:

Host somehost
    # ~/tmp/sc must exist beforehand and should have mode 0700.
    ControlPath ~/tmp/sc/%h.%p
    ControlMaster auto

查看ssh_config(5)手册页了解有关其工作原理的更多详细信息。

相关内容