我从我的 Mac OS X (Snow Leopard) 通过 SSH 连接到一台 Linux 机器,然后想要将文件从 Linux 机器复制到我的 Mac 中。
我用过ssh user@linuxmachine address
,但是当我使用时scp filename user@mymacsipaddress:filepath
,什么都没有发生。
我尝试从 Linux 提示符下通过 SSH 连接到我的 Mac,但在这种情况下也没有发生任何事情。我在系统偏好设置/共享中启用了远程访问,并尝试:
ssh local host
ssh mymacsipaddress and
ssh user@mymacipaddress
从我的 Mac 提示符下,它们似乎都正常工作,因此 SSH 似乎已启用。可能出了什么问题?我需要在 Mac 上启用其他任何东西吗?
我运行此命令来查看 port22 是否正在监听 netstat -na | grep 22 tcp4 0 0 *.22。听并得到上述结果。
答案1
由于你可以使用 SSH 从 Mac 登录到 Linux 计算机,因此最快捷、最简单的解决方案(至少在 StackOverflow 等网站上提供)可能是scp
从 Mac 运行命令。例如: scp user@linuxmachine:/path/to/file /destination/on/mac
为了进一步排除从 Linux 机器连接到 Mac 时发生的问题,您可能更愿意在相应的 Stack Exchange 上询问(可能是 apple.stackexchange.com,但我不确定)。
(更新:这个问题已从 StackOverflow 迁移到 SuperUser,因此我猜 SuperUser 就是最佳选择。很高兴知道。)
虽然你可能会在另一个 Stack Exchange 网站上得到更好的答案,但这里有一个快速而粗略的方法可以让你尝试找出问题所在,也许这可能会有所帮助:
- 在 Linux 机器上,尝试
telnet N.N.N.N 22
(用 替换 Mac 的 IP 地址N.N.N.N
)。没错,数字 前面有一个空格22
。
如果您得到如下结果,则表示网络一切正常,您可能需要查看 Mac 上 sshd_config 文件中的设置:
Trying N.N.N.N...
Connected to N.N.N.N.
Escape character is '^]'.
(这是因为scp
使用 SSH 协议。修复您的 SSH 问题,您就可能解决您的scp
问题。)
如果你不是得到类似的东西,是时候检查一些与网络相关的东西了。
- Mac 和 Linux 机器之间是否正在运行 NAT?您使用的 IP 地址是什么?这完全可以解释为什么 Mac 可以连接到 Linux 机器,而 Linux 却不能连接到 Mac。您能从 Linux 机器 ping 通 Mac 的 IP 地址吗?
- 查找两台机器上的防火墙规则和日志
我建议使用一种比较原始的方法来排除故障。毫无疑问,有办法提高两端的日志记录能力,从而更好地了解正在发生的事情。
更新:现在问题已经转移到 SuperUser,也许有人会提供更详细、更万无一失的方法来解决此问题。祝你好运!
答案2
您可能需要在 Mac 上启用远程登录。前往“系统偏好设置”>“共享”,然后选中“远程登录”复选框。