如何在ssh会话中执行scp命令?

5
如何在SSH连接的情况下复制位于我的文件夹中的文件?
这个命令只有在本地运行时才有效:
scp /home/josh/Desktop/DATA/import/file001.csv root@10.0.3.14:/var/www/html/project

我希望在ssh连接时启动它能够得到同样的结果,这是否可能?

1
当通过ssh连接到远程主机时,请尝试使用以下命令scp /var/www/html/project/file001.csv josh@your_pc_ip_address:~/Desktop/DATA/import,假设csv文件位于源文件夹中并且您的电脑已正确配置。 - leopal
[so] 是用于编程问题的,而不是关于使用或配置Linux及其应用程序的问题。[su]或[unix.se]将是更好的地方,用于此类问题的提问。 - Barmar
scp 命令的工作方式相同,但现在有一个不同的本地计算机。您必须调整路径并确保可以连接到新的远程计算机。 - axiac
2个回答

5
你可以在.ssh/config中设置ControlMaster。
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r

然后使用ssh命令模式,它将重用现有的连接:

将ssh会话推入后台的解决方案:

local$ ssh remote
remote$ ~^Z                   # Shift+`, Ctrl+z   - Push ssh into background
local$ scp file remote:/remotepath
local$ fg
remote$

您可以通过以下方式打开隧道:
remote$ ~C                     # Shift+`, Shift+c  - Enter command mode
ssh> -R15000:localhost:22      # tunnel to local:22 from remote:15000
 Forwarding port.
remote$ scp -P15000 localhost:/filepath ~/
remote$ ~C
ssh> -KR15000
 Canceled forwarding.
remote$

1
没关系,只需在 shell 提示符上按下 ~C 这两个字符的确切顺序(注意大写),不需要其他任何操作。我第一次尝试没有成功获得 ssh> 提示符,但在随后的尝试中它正常工作了。 - axiac
2
这是进入命令模式的按键序列:Shift+\``,Shift+c`。 - vp_arth
也许是我的 ssh(d) 的问题,但是 ssh> 提示符不接受任何 ! 命令(它会显示“无效命令”)。help 命令列出了 -L-R-D-KL-KR-KD(带参数)作为它所理解的唯一命令。 - axiac
我确实获得了远程shell,并且可以在远程计算机上运行命令。我无法访问本地计算机(或者我不知道如何访问)。我觉得OP是在询问如何在通过SSH登录到远程计算机时将文件从本地计算机复制到远程计算机。 - axiac
1
谢谢你的回答!(y) - Paul
显示剩余2条评论

1
步骤1:获取IP地址。
hostname -I

步骤 2:将SCP调用到SSH中。
 scp josh@my_ip_address:~/Desktop/DATA/import/file001.csv  /var/www/html/project

ie: "josh"是我连接到个人电脑的名称。


2
只有在本地安装了sshd,它才能正常工作。 - vp_arth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接