为什么我无法通过 SSH 进入我的笔记本电脑?

为什么我无法通过 SSH 进入我的笔记本电脑?

我升级到了 Mountain Lion,但通过 SSH 访问我的计算机时出现了一些问题。我可以从我的计算机通过 SSH 访问其他计算机,但还不能从其他计算机通过 SSH 访问我的笔记本电脑。

  • 我已经开启远程共享
  • 我尝试过改变ssh_config文件夹sshd_config中的/etc
  • 我已经关闭防火墙
  • 我努力了这个答案;说com.openssh.sshd: Already loaded

问题仍然存在。我该如何修复?

我需要修复这个问题的原因主要是通过 ssh 进行安全复制。记住realpath云上的文件位置并从您的盒子中访问它是一件很麻烦的事;虽然这是可能的,而且我一直都是用这种方法来应对这个新的 Mountain Lion 异常的。但是从装有文件的盒子通过 SSH 进入我的笔记本电脑会更容易。

在此先感谢您的帮助!

答案1

OS X 配置

系统偏好设置 → 共享 -> 启用“远程登录”

如果您不想通过帐户限制 ssh 访问,请选择允许“所有用户”访问。

路由器端口映射

Kent Graves 的回答其实让我想起一件事。

您是否在路由器后面连接?如果是这样,则说明您之前已正确设置了端口转发。如果您的 IP 在 Mountain Lion 升级后发生变化(或变为 DHCP 分配),则端口转发将不再起作用。检查您的 OS X 是否使用静态 IP,然后更新路由器上的端口转发规则或将机器 IP 改回之前的状态。

反向 SSH 隧道 - 解决 ssh 问题而不修复问题

  1. 测试

    如果你可以在你的 OS X 机器上执行以下操作,那么此解决方案将有效:

    ssh <osx-user>@localhost
    
  2. 连接云端机器

    当使用 SSH 连接到云端机器时,使用以下-R选项设置一个反向 ssh 隧道回到本地机器:

    ssh <username>@<cloud-machine> -R <interface-IP:port on cloud machine>:localhost:22
    

    例如,使用以下命令连接到云机器:

    ssh user@cloud-machine -R localhost:2000:localhost:22
    

    这将设置一条 SSH 隧道,从云机器端口 2000 到 OS X 机器端口 22,即 ssh 服务器端口。

  3. 通过隧道 SCP/SSH 返回 OS X 机器

    SCP 示例 1:从 OS X 机器复制到云端机器:

    scp -P 2000 <osx-user>@localhost:/path/* /var/www/
    

    SCP 示例 2:从云端机器复制到 OS X 机器:

    scp -P 2000 /var/www/* <osx-user>@localhost:/path/
    

    使用以下命令通过 SSH 返回 OS X 计算机:

    ssh -p 2000 <osx-user>@localhost
    

    请注意,SCP 使用大写 -P指定端口,而 SSH 使用小写 -p

答案2

我不熟悉 OS X,但其基本功能是一样的。

即使您已启用 ssh,您确定它仍作为服务运行吗?

尝试运行 OS X 等效的 netstat 来查看端口 22 是否正在监听,如果没有,则表明服务存在问题。

其次,您确定您只有一个防火墙吗?即使您的主机防火墙允许端口 22,如果您尝试从本地网络外部进行 SSH,那么您的网关或路由器可能也会阻止 SSH,因为它也有防火墙。您需要进入路由器的配置并允许访问网络上的端口 22。

即使您的防火墙已关闭,并且允许连接到端口 22,您也必须有一个侦听该端口的服务才能创建连接。

另外,您尝试创建 SSH 连接的计算机位于哪里?它是在本地网络上,还是您通过互联网连接到这台机器?

我假设您以前使用过 SSH,但只是想检查一下您使用什么命令或使用什么 SSH 客户端来创建连接?格式应为:

ssh <username>@<ip_address or hostname>

无论您使用什么用户名连接到您的机器,该机器上的 SSH 服务器都必须设置为允许该用户连接,除非您将其设置为所有用户(如其他人提到的那样)。

以下是针对 OS X Mountain Lion 的分步指南:http://www.ernieflores.net/osx-page-2/enable-remote-login-to-start-ssh-server-in-osx/

相关内容