![ssh 是否具有在已连接时交换文件的功能?](https://linux22.com/image/1361162/ssh%20%E6%98%AF%E5%90%A6%E5%85%B7%E6%9C%89%E5%9C%A8%E5%B7%B2%E8%BF%9E%E6%8E%A5%E6%97%B6%E4%BA%A4%E6%8D%A2%E6%96%87%E4%BB%B6%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%9F.png)
我从未听说过这种可能,所以答案可能是否定的。但也许有人知道得更多。
我知道你可以sftp
使用主持人和偏僻的,你们都可以sftp
:主持人到偏僻的,以及偏僻的到主持人一旦你已经连接到偏僻的和SSH
。
但现在我的问题是,一旦你连接到偏僻的机器SSH
是否可以使用已建立的连接传输文件?这非常合乎逻辑,我已经连接,身份验证已完成,为什么不直接使用类似lls
,之类的东西put
。或者使用一些可以绕过远程 bash 输入行并在主机之间执行某些操作的键组合。
答案1
OpenSSH的最新ControlMaster
版本支持多路复用连接。查看ControlPath
ssh_配置。
使用此功能,您仍然必须运行scp
或sftp
执行文件传输,但传输将通过您现有的 SSH 连接运行。
答案2
您将始终需要向所连接的机器表明您的身份。您可以将其设置为使用加密密钥,这样就不需要密码,但仍需要进行身份验证。
在远程系统之间传输文件的最简单方法是scp
,它是软件包的一部分ssh
。假设您的本地计算机是1.2.3.4.
,您的本地用户tom
是 ,远程计算机是5.6.7.8
,您的远程用户是jon
。
登录服务器后,将文件从远程服务器复制到本地计算机:
scp /home/jon/foo.txt [email protected]:/home/tom/
当然,你仍然需要向你的当地的机器上)。但是,没有发送到服务器。
在未登录服务器时将文件从远程服务器复制到本地计算机:
scp [email protected]:/home/jon/foo.txt /home/tom/
这样,您只需识别一次自己,无需打开单独的
ssh
连接。
您还可以在远程服务器之间进行复制,ssh
基本上只要您有权限就可以。命令的一般格式是
scp user1@machine1:/path/to/source user2@machine2/path/to/destination
答案3
使用现有的 SSH会议,但不一定是 SSH 本身,你可以尝试值得信赖的经典 Zmodem rz
/sz
。这些实用程序可能已经在您的系统上可用,因为它们以 RPM 和 DPKG 格式在各种存储库中提供。否则,您可以从以下位置下载并构建它们这里。