使用 ssh 本地端口转发在主机之间传输 scp 文件

使用 ssh 本地端口转发在主机之间传输 scp 文件

我在主机之间传输文件时遇到问题。实验室环境如下:

我的主机 <-> 主机 A <-> 主机 B

我只能访问主机 A,并且我想将文件传输到主机 B。主机 A 可以访问主机 B。

我想用scp它直接从我的主机传输文件到主机 B。

我试过ssh -L :8899:<host-B>:22 user@host-ascp -P 8899 myfile.txt user@localhost:/path/to/store/files但失败了:(

通道 2:打开失败:管理禁止:打开失败 ssh_exchange_identification:远程主机关闭连接丢失连接

我怎样才能实现这个工作?

注意:当我通过 ssh 连接到主机 A 时,我必须输入由 RSA 令牌生成的密码。这是我收到错误消息的原因吗?

答案1

您所列出的端口的语法ssh -L是:ssh -L 8899:<Host B>:22 user@<Host A>

这将监听 上的 8899 端口,它收到的任何内容都将通过 ssh 转发到 ,并从那里以明文形式发送到 。它将认为它正在与 上运行的某个程序进行通信

我不确定这对你有什么帮助。

您可以使用 PoxyCommand 链接 ssh 会话,因此:

Host Host-B
  HostName      Host-B.some.private.network.domain
  ProxyCommand          ssh -q Host-A nc %h %p

如果这在您的.ssh/config文件中,输入scp blah.txt <Host-B>:将尝试blah.txt通过 ssh 会话将文件发送到主机 A,然后从那里发送到主机 B,全部通过 ssh。

您的 ssh 客户端将像直接连接到主机 B 一样运行。任何 RSA 密钥等提示都将通过 ssh 会话返回,就像您位于主机 A 上一样。

相关内容