登录到远程时,如何引用本地计算机进行scp?

时间:2013-08-29 13:58:08

标签: unix scp

这一定是一个非常简单的问题,但我正在尝试将文件从远程服务器移动到本地计算机,同时登录到远程(通过ssh)。

所有导游都说要使用

scp name@remote:/path/to/file local/path/to/file

但据我所知,这将是我在本地机器上使用的内容。从远程机器,我假设我想使用像

这样的东西
scp /path/to/file my_local_computer:/local/path/to/file

但是(如果这甚至是正确的)我怎么知道为my_local_computer放入什么?

谢谢!

3 个答案:

答案 0 :(得分:8)

您可以通过检查环境变量SSH_CONNECTION和/或SSH_CLIENT来自动确定您的登录位置。例如,SSH_CONNECTION显示客户端地址,客户端上的传出端口,服务器地址和服务器上的传入端口。请参阅man ssh

中的环境部分

因此,如果您要将文件从服务器复制到您从中登录的客户端,则以下(通过采用SSH_CONNECTION的第一部分来推断客户端IP)应该有效:

scp /path/to/file $(echo $SSH_CONNECTION | cut -f 1 -d ' '):/local/path/to/file

安德烈亚斯

答案 1 :(得分:3)

你走在正确的轨道上! scp的手册页应该告诉你如何做你想做的事:http://linux.die.net/man/1/scp

如果您无法理解手册页,那么我将尝试指导您:

  1. 如果要将文件从本地计算机推送到远程计算机

    scp /path/to/local/file testuser@remote-host:/path/to/where/you/want/to/put/file

  2. 如果要将文件从远程计算机拉到本地计算机

    scp testuser@remote-host:/path/to/file/you/want/to/pull /path/on/local/machine/to/place/file

  3. 如果您已登录到远程计算机并希望将文件推送到本地计算机(假设您首先能够scp到本地计算机)

    scp /path/on/remote/machine/to/file testuser@local-host:/path/on/local/machine/to/put/file

  4. 现在,要确定您的本地主机地址是什么,您可以检查本地计算机的IP地址,或者本地计算机是否已提供DNS条目,您可以使用它。

    I.E。,scp ~/myfile testuser@192.168.1.10:/home/testuser/myfile OR scp ~/myfile testuser@my-host:/home/testuser/myfile

    对于DNS条目,如果您使用的是正确配置的网络,则不需要完全限定的域。否则,您需要执行类似testuser@my-host.example.com的操作:/ home / testuser / myfile

答案 2 :(得分:0)

也许你可以围绕这个建立一个解决方案:

who | grep $USER

在远程计算机上运行时,它应该提示您连接表单的位置。