我需要从服务器下载一个文件到我的桌面。(UBUNTU 10.04)我没有网络访问服务器,只有ssh。

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


当前回答

SCP当然是可行的方法,但为了完整性,你还可以这样做:

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

or

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

注意,这是uoc,但是< /path/on/local ssh host 'cat > /path'可能会引起不必要的混淆。

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

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

其他回答

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

CyberDuck支持所有这些。

在终端中输入:

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

可以使用scp命令完成此操作。scp通过扩展cp的语法,使用SSH协议跨系统复制文件。

从另一个系统复制一些东西到这个系统:

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   

SCP当然是可行的方法,但为了完整性,你还可以这样做:

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

or

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

注意,这是uoc,但是< /path/on/local ssh host 'cat > /path'可能会引起不必要的混淆。

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

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