![无法从远程 scp 到本地 Mac](https://linux22.com/image/1414317/%E6%97%A0%E6%B3%95%E4%BB%8E%E8%BF%9C%E7%A8%8B%20scp%20%E5%88%B0%E6%9C%AC%E5%9C%B0%20Mac.png)
我已经浏览了 SU 和 SO 的帖子,想找到一种方法来实现这一点,但我打算放弃,坚持使用 GUI。我想将scp
一个 ZIP 文件从远程服务器传输到我的本地计算机。我可以通过 SSH 顺利登录。我可以创建、删除、编辑等……但无法下载 ZIP。这是迄今为止“最接近”的。
# scp backup.zip [email protected]:/Users/Steven/Desktop/test
。
为了清楚起见,“backup.zip”是我想要从服务器下载的内容,位于我当前的目录中。“Steven”是我笔记本电脑上的用户名。我用 1 替换了本地机器的 IP 地址,路径是我想要复制到的位置的路径。
然而,有了这个,我得到了:
ssh: connect to host 111.111.111.11 port 22: Connection timed out lost connection
有趣的是,我没有被踢出会话。它只是让我回到输入命令之前的状态。我是不是漏掉了一些语法?
答案1
我是否理解正确,您正在使用 SSH 连接到远程主机,然后在远程主机上运行scp
以将文件复制回本地主机?
在对这两个主机一无所知的情况下,完全有可能您的本地主机可以与远程主机建立 SSH 连接,但远程主机无法与本地建立 SSH 连接。
如果您可以从本地主机到远程主机建立 SSH 连接,则可以scp
在本地主机而不是远程主机上运行:
scp remoteuser@remotehost:/path/to/backup.zip /Users/Steven/Desktop/test/
答案2
您确定远程计算机可以通过该 IP 地址访问本地 Mac 吗?例如,如果您的本地 Mac 上有一个 RFC 1918 私有地址(如 192.168.xy),因为它位于 NAT 网关后面,而远程计算机位于 NAT 网关的公共端,那么远程计算机将无法通过该地址访问本地 Mac,因为 RFC 1918 私有地址不可路由。您必须在 NAT 网关上进行端口映射,将端口 22 从其公共地址映射到 Mac 私有地址上的端口 22,然后再映射scp
到 NAT 网关的公共地址。
或者按照@Kenster 的建议scp
,从本地机器以相反的方式运行命令。