【问题标题】:How to download a file from server using SSH? [closed]如何使用 SSH 从服务器下载文件? [关闭]
【发布时间】:2012-03-14 17:08:48
【问题描述】:

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

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

【问题讨论】:

  • 试试这个 sftp:winscp.net/eng/download.php
  • 为什么这是题外话?
  • 因为不是编程题
  • @EdwardBlack 本来可以迁移到 unix.stackexchange
  • 这对我有用sudo scp -i ~/.ssh/id_rsa username@remotehost.io:Downloads/filename.sql ~/Desktop

标签: linux unix ssh


【解决方案1】:

在您的终端中,输入:

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

【讨论】:

  • 我不熟悉 Amazon EC2,但如果您可以通过 SSH 访问您的服务器,它应该可以工作。
  • 我认为上例中your_username@remotehost.edu:和foobar.txt之间缺少/。
  • @NiLL scp -i xxx.pem your_username@remotehost.edu:foobar.txt /some/local/directory
  • @Alex 添加 -r 选项。
  • 有用的信息 - 我没有意识到你是从本地机器上运行的,而不是从你想下载的地方。所以正如霍拉克所问的那样,~/ 会将其转储到您的用户目录中,例如 /Users/admin/ - 我远程登录 ssh 并想知道它为什么不起作用。
【解决方案2】:

您可以使用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   

【讨论】:

  • 我喜欢如果一个人想要解决 OPs 问题并且没有完全阅读您的答案,他们可能会意外地不假思索地运行您的第一个命令,并可能用本地文件覆盖他们尝试下载的远程文件他们可能更早接触过。哎呀。
  • 为什么有访问权限?有人可以不假思索地执行“rm -rf /”,但这不会降低 rm 命令的实用性?
  • 你认为开始回答“我应该如何升级 linux?”使用“rm -rf /”命令也是个好主意?
  • @MrPurple - 感谢您的警告,我几乎就是这样做的。我已编辑问题以首先显示最相关的命令
【解决方案3】:

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'

【讨论】:

  • 有没有人对不同的方法进行过速度测试?我很想知道哪个最快。用例:我有一个大文件要下载。
  • 这实际上适用于 .ssh/config,而 scp 似乎不遵循 ssh 配置
【解决方案4】:

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

CyberDuck全部支持。

【讨论】:

  • 从他们的网站下载,cyberduck.ch/Cyberduck-4.2.1.zip
  • 看起来他们已经将软件更改为免费,但您可以选择捐赠任意金额,这将摆脱程序内的“捐赠提示”。
  • 这不能回答问题。
  • 确实如此,使用 Cyber​​duck 的 SFTP 下载很容易
  • FileZilla 非常适合我,而且是免费和开源的(由制作 Firefox 的人制作)。和 Cygwin 一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-29
  • 2016-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-03-21
  • 2011-03-01
  • 1970-01-01
相关资源
最近更新 更多