为什么我无法通过 SSH 连接到我的笔记本电脑?

iGb*_*nam 3 ssh osx-mountain-lion macos

我升级到 Mountain Lion,通过 SSH 访问我的计算机时发生了一些事情。我可以从我的计算机通过 SSH 连接到其他机器,但我还不能从其他计算机通过 SSH 连接到我的笔记本电脑。

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

这个问题仍然存在。我怎样才能解决这个问题?

我需要修复的原因主要是为了通过 ssh 进行安全复制。记住realpath云上的文件并从您的盒子访问它是一种痛苦;虽然这是可能的,而且我一直是这样在这个新的山狮异常中幸存下来的。但是,能够从包含文件的盒子通过 SSH 连接到我的笔记本电脑会更容易。

在此先感谢您的帮助!

Joh*_*Siu 9

OS X 配置

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

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

路由器端口映射

Kent Graves 的回答实际上让我想起了一件事。

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

反向 SSH 隧道 - 在不修复问题的情况下解决 ssh 问题

  1. 测试

    如果您可以在 OS X 机器上执行以下操作,则此解决方案将起作用:

    ssh <osx-user>@localhost
    
    Run Code Online (Sandbox Code Playgroud)
  2. 连接云机

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

    ssh <username>@<cloud-machine> -R <interface-IP:port on cloud machine>:localhost:22
    
    Run Code Online (Sandbox Code Playgroud)

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

    ssh user@cloud-machine -R localhost:2000:localhost:22
    
    Run Code Online (Sandbox Code Playgroud)

    这会建立一个 SSH 隧道,从云机器端口 2000 到 OS X 机器端口 22,这是 ssh 服务器端口。

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

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

    scp -P 2000 <osx-user>@localhost:/path/* /var/www/
    
    Run Code Online (Sandbox Code Playgroud)

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

    scp -P 2000 /var/www/* <osx-user>@localhost:/path/
    
    Run Code Online (Sandbox Code Playgroud)

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

    ssh -p 2000 <osx-user>@localhost
    
    Run Code Online (Sandbox Code Playgroud)

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