从 Linux 机器通过 ssh 和 scping 进入我的 Mac

从 Linux 机器通过 ssh 和 scping 进入我的 Mac

我从我的 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 上启用远程登录。前往“系统偏好设置”>“共享”,然后选中“远程登录”复选框。

相关内容