鉴于您在本地计算机上运行了sshd,因此可能需要知道您的IP地址.如果启用SSH端口转发,即使已经打开了ssh连接,也没有终止,您可以打开安全通道.
假设你有一个ssh连接到一些服务器:
local $ssh user@example.com
Password:
remote $echo abc > abc.txt # now we have a file here
好的,现在我们需要将该文件复制回本地服务器,由于某种原因我们不想打开一个新的连接.好的,我们通过按Enter键C(输入,然后是波浪号,然后是大写字母C)得到ssh命令行:
ssh> help
Commands:
-L[bind_address:]port:host:hostport Request local forward
-R[bind_address:]port:host:hostport Request remote forward
-D[bind_address:]port Request dynamic forward
-KR[bind_address:]port Cancel remote forward
这就像常规的-L / R / D选项.我们需要-R,所以我们再次按Enter〜C键入:
ssh> -R 127.0.0.1:2222:127.0.0.1:22
Forwarding port.
在这里,我们将远程服务器的端口2222转发到本地机器的端口22(这里是您需要在端口22上启动本地SSH服务器的地方;如果在其他端口上侦听,则使用它而不是22).
现在只需在远程服务器上运行scp,并将我们的文件复制到远程服务器端口2222,该端口映射到本地机器的端口22(我们本地的sshd正在运行).
remote $scp -P2222 abc.txt user@127.0.0.1:
user@127.0.0.1's password:
abc.txt 100% 4 0.0KB/s 00:00
我们完了!
remote $exit
logout
Connection to example.com closed.
local $cat abc.txt
abc
棘手,但如果你真的不能从另一个终端运行scp,可以帮助.