scp 通过 ssh 隧道打开
Posted
技术标签:
【中文标题】scp 通过 ssh 隧道打开【英文标题】:Scp through ssh tunnel opened 【发布时间】:2016-02-17 13:34:50 【问题描述】:我想从已与服务器打开反向隧道的 machineA 发送文件。反向隧道将 machineA 上的 22 端口与服务器上的 2222 端口连接起来:
autossh -M 0 -q -f -N -o "ServerAliveInterval 120" -o "ServerAliveCountMax 1" -R 2222:localhost:22 userserver@server.com
如果我这样做:
scp file userserver@server.com:.
然后 SCP 通过 SSH 发送带有新登录的文件,在我的例子中使用公钥/私钥。
但如果我这样做:
scp -P 2222 file userserver@localhost:.
我收到“连接被拒绝”消息。如果我用找到的端口替换上面的2222
,也会发生同样的情况:
netstat | grep ssh | grep ESTABLISHED
如何在不打开新的 ssh 连接(不握手)的情况下发送文件?
【问题讨论】:
请编辑您的问题以显示您如何设置 scp 应该使用的 SSH 隧道。 我添加了启动反向 ssh 隧道的命令。 【参考方案1】:您可以在ssh_config
(~/.ssh/config
) 中使用ControlMaster
选项,这将为进一步的 ssh/scp/sftp 会话创建持久连接。这很容易:
Host yourhost
Hostname fqdn.tld
Port port_number # if required, but probably yes, if you do port-forwarding
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h
ControlPersist 5m
【讨论】:
如果我尝试此配置并使用 2222 值设置端口,我会收到拒绝连接消息。我测试了 22 端口执行 scp --v 和这项工作。谢谢以上是关于scp 通过 ssh 隧道打开的主要内容,如果未能解决你的问题,请参考以下文章