我查看了很多与此相关的类似问题,但没有找到任何可以解决我的问题的方法。
我希望能够打开与我所在大学服务器的 ssh 连接,并在后台保持连接打开。我的做法是,通过 ssh 进入大学服务器并运行脚本,然后将文件从那里复制到我的远程服务器,例如:
$ssh [email protected] "./bin/script"
[email protected]'s password:
$scp [email protected]:~/some_file.txt .
[email protected]'s password:
我多次执行此命令序列,最终我的连接被拒绝,因为大学误以为它是恶意软件。所以我想做的是打开 ssh 连接一次,然后保持打开状态,这样我就可以连续在远程服务器上运行脚本。我不想在另一个终端中打开 ssh 连接,因为打开两个终端并不断按 alt+tab 切换到错误的终端非常烦人。肯定有办法做到这一点,我真的很感激一些帮助。
答案1
ssh 可能会重用现有的连接。
以下是一个答案的引用切普纳对此Stack Overflow 上的类似问题:
如果您使用以下命令打开第一个连接
-M
:ssh -M $REMOTEHOST
后续连接将
$REMOTEHOST
“搭载”由 master 建立的连接ssh
。最值得注意的是,不需要进一步的身份验证。man ssh_config
有关更多详细信息,请参阅“ControlMaster”。用于-S
指定共享套接字的路径;我不确定默认值是什么,因为我使用配置文件配置连接共享。在我的
.ssh/config
文件中,有以下几行:host * ControlMaster auto ControlPath ~/.ssh/ssh_mux_%h_%p_%r
这样,我就不必记住使用
-M
或-S
;ssh
确定主机/端口/用户名组合是否已经存在可共享的连接,并在可能的情况下使用该连接。