如何使用SSH从服务器下载文件?[关闭]


749

我需要将文件从服务器下载到桌面。(UBUNTU 10.04)我没有Web访问服务器,只是ssh。

如果有帮助,我的操作系统是Mac OS X和iTerm 2作为终端。



51
为什么这是题外话?
jsmedmar '16

4
因为这不是编程问题
黑色

26
@EdwardBlack本可以改为迁移到unix.stackexchange
gldraphael

3
这为我工作sudo scp -i ~/.ssh/id_rsa username@remotehost.io:Downloads/filename.sql ~/Desktop
kaxi1993

Answers:


1166

在您的终端中,键入:

scp your_username@remotehost.edu:foobar.txt /local/dir

相应地替换用户名,主机,远程文件名和本地目录。

如果要访问EC2(或其他需要使用私钥进行身份验证的服务),请使用以下-i选项:

scp -i key_file.pem your_username@remotehost.edu:/remote/dir/foobar.txt /local/dir

来自:http : //www.hypexr.org/linux_scp_help.php


3
我对Amazon EC2不熟悉,但是如果您可以通过SSH访问服务器,则应该可以使用它。
Josh1billion 2012年

3
我认为上述示例/之间your_username@remotehost.edu:和之间缺少一个内容foobar.txt
Eugene S

13
@NiLL scp -i xxx.pem your_username@remotehost.edu:foobar.txt / some / local / directory
Helin Wang

3
@Alex添加-r选项。
SgtPooki 2014年

10
有用的信息-我没有意识到您是从本地计算机而不是您要从其下载的位置运行此文件的。因此,按照Horak的要求,〜/会将其转储到/ Users / admin /之类的用户目录中-我远程登录了ssh,想知道为什么它不起作用。
开清

322

您可以使用scp命令执行此操作。scp通过扩展的语法,使用SSH协议在整个系统中复制文件cp

将内容从另一个系统复制到该系统:

scp username@hostname:/path/to/remote/file /path/to/local/file

将某些东西从该系统复制到其他系统:

scp /path/to/local/file username@hostname:/path/to/remote/file          

将某物从某个系统复制到其他系统:

scp username1@hostname1:/path/to/file username2@hostname2:/path/to/other/file   

5
我喜欢如果有人想解决OP问题而又没有完全阅读您的答案,他们可能会偶然地,并且不考虑简单地运行您的第一个命令并可能覆盖他们试图下载的远程文件以及他们之前接触过的本地文件,而感到如何。哎呀
紫色先生

为什么要访问?有人可以不加思索地做“ rm -rf /”,但这不会减少rm命令的效用吗?
raj_gt1

1
您是否认为开始回答“我应该如何升级linux”?用“ rm -rf /”命令也是一个好主意吗?
紫先生

2
@MrPurple-感谢您的警告,我几乎做到了。我已编辑问题以首先显示最相关的命令
Sphinxxx '18

96

scp当然是要走的路,但是为了完整起见,您还可以这样做:

$ ssh host 'cat /path/on/remote' > /path/on/local

要么

$ cat /path/on/local | ssh host 'cat > /path/on/remote'

请注意,这是UUOC,但< /path/on/local ssh host 'cat > /path'可能导致不必要的混乱。

并在两个主机之间进行代理:

$ ssh host1 'cat /path/on/host1' | ssh host2 'cat > /path/on/host2'


5
有没有人对不同的方法进行速度测试?我很想知道哪一个最快。用例:我有一个巨大的文件要下载。
starbeamrainbowlabs

这实际上适用于.ssh / config,而scp似乎不遵循ssh配置

13

如果SSH服务器支持SFTP子系统(这是SSH的一部分, FTP 无关),请使用sftp。如果没有,请尝试scp。

Cyber​​Duck支持所有人。



看来他们此后已将软件更改为免费软件,但您可以选择捐赠任何金额,这将消除程序中的“捐赠提示”。
迈克

12
这不能回答问题。
edwinj 2015年

1
确实如此,使用Cyber​​duck的SFTP下载就足够容易了
Miguel Stevens

FileZilla对我来说非常有效,并且是免费和开源的(由制作Firefox的同一个人制作)。Cygwin也一样。
hanshenrik
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.