这一定是一个非常简单的问题,但我正在尝试将文件从远程服务器移动到本地计算机,同时登录到远程(通过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放入什么?
谢谢!
答案 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
如果您无法理解手册页,那么我将尝试指导您:
如果要将文件从本地计算机推送到远程计算机
scp /path/to/local/file testuser@remote-host:/path/to/where/you/want/to/put/file
如果要将文件从远程计算机拉到本地计算机
scp testuser@remote-host:/path/to/file/you/want/to/pull /path/on/local/machine/to/place/file
如果您已登录到远程计算机并希望将文件推送到本地计算机(假设您首先能够scp到本地计算机)
scp /path/on/remote/machine/to/file testuser@local-host:/path/on/local/machine/to/put/file
现在,要确定您的本地主机地址是什么,您可以检查本地计算机的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
在远程计算机上运行时,它应该提示您连接表单的位置。