如何在已将ssh传输到服务器的同时通过ssh传输文件


13

我使用此命令传输文件

scp <localfile> user@host:<destination>

上面的命令仅在我不SSH服务器时才有效。

我已经SSH过后如何将本地文件传输到主机?

我在使用ssh ssh user@hostname


2
什么操作系统?打开另一个终端并使用scp命令
Impulss

1
它是centOS。到目前为止,这就是我一直在做的事情。我只是希望有一些方便的东西。
无所不在

Answers:


5

好问题。scp再次,但是相反的方式。我做到了,这里是:

chris@local ~$ ls hos*
hosts
chris@local ~$ ssh remote
Last login: Fri Mar  8 15:52:25 2013 from local
chris@remote ~$ scp chris@local:hos* .
chris@local's password: 
hosts                                              100% 1850     1.8KB/s   00:00    
chris@remote ~$ ls hos*
hosts
chris@remote ~$ 

编辑添加:如评论中指出,这要求远程计算机可以访问本地计算机。并且需要在本地计算机上安装并运行sshd或(openssh-server)。


3
假定本地计算机可从远程计算机访问,但并非总是如此。
洛伦特

但是,如果确实如此,它将很好地工作。
daviewales

3

这将有助于您了解主机上正在运行的内容。如果您使用的是Linux,

scp user@host:/path/myfile .

应该管用。


user @ host是我对问题所理解的远程计算机,因此此命令不会将文件从本地计算机复制到远程计算机,而是从远程计算机复制到本地(如果未在主机中进行SSH),并且将在远程计算机上复制到自身。 SSHed。
洛伦特

我认为这个问题有些含糊。对我来说,user@host似乎是指您当前不控制的计算机。因此,当OP未登录到远程计算机时,则user@host是远程计算机。当OP登录到远程计算机时,user@host本地计算机也将登录。如果我的假设是正确的,那么这个答案是有道理的。
daviewales

daviewales也正是我对问题的解释。另外,您是正确的,我认为user @ host代表您当前无法使用的任何工作站。我辩论了是否在我的答复中更明确地指出这一点,但认为这是隐含的。
2013年

无论如何,即使当用户在远程计算机上登录时user @ host代表本地计算机(这与OP表示要将本地文件传输到主机一样),这仅在可从远程计算机访问本地计算机的情况下才有效。 (通常是在同一个LAN上),而不是在远程计算机位于Internet上且本地计算机没有固定IP的情况下。
洛伦特2013年

0

如果您有返回本地计算机的方式(您的本地计算机可以从远程计算机访问,通常是两台计算机都在同一局域网中),则可以使用远程计算机上的scp scp local:/path-to-file .

如果无法从远程计算机访问本地计算机(通常,如果远程计算机是Internet上的VPS,并且本地计算机具有动态IP,则通常为true),最好的方法是在本地计算机上打开新终端并复制文件。

另一种方法是,仅在复制文件时更复杂且肯定不是必需的,这将是在机器(或网络)之间建立VPN,以便两台机器均可从另一台机器访问,而您可以从一台机器或另一台机器使用scp。


-1

当登录到远程系统时(更容易将其插入文件位置)sudo scp file_location / file_name user @ host:file_location

从远程系统注销时sudo scp authoried_user @ hostname:file_location / file_name new_location_on_local_machine

脚注:请记住,在注销远程系统时,如果是新终端,则第一个密码将是sudo密码,第二个密码将是授权的用户密码。如果您之前曾在该特定终端中使用过,那么它只是您需要的授权用户密码。注意这些,这很棘手。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.