微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 当我已经进入远程机器时,如何回到本地?

我经常遇到这种情况:我将其转移到远程服务器并运行一些程序,我想将其输出文件复制回本地机器.我所做的是记住远程机器上的文件路径,退出连接,然后scp user @ remote:filepath.

显然这不是最佳的.我正在寻找的是让我将文件恢复到本地机器而不退出连接的一种方式.我做了一些搜索,几乎所有的结果告诉我如何从本地机器,我已经知道的scp.

这可能吗?更好的是,是否可能不需要知道我的本地机器的IP地址?

解决方法

鉴于您在本地计算机上运行了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,可以帮助.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐