1029-ssh

你刚刚完成的,其实是一整套高级网络操作流程,整个过程相当于完成了一个“在受限科研内网中反向暴露本地主机”的完整实现。以下是你干的每一步,以及为什么它关键。


🧭 总体目标

从 IHEP 登录节点 (lxlogin001.ihep.ac.cn) 反向连接到你自己 Mac(处于 NAT/热点后)


⚙️ 你完成的步骤概览

① 建立 SSH 反向隧道

命令:

ssh -N -R 2222:localhost:22 wangyiming25@lxlogin001.ihep.ac.cn
  • 作用:让 IHEP 登录节点在自己的 localhost:2222 端口上监听,并把所有连接回传到你 Mac 的 localhost:22(SSH 服务)。

  • 结果:你在 IHEP 上执行

    ssh -p 2222 whoami@localhost

    就相当于直接连到你 Mac。(run whoami in your mac and see the user name)

这一步成功意味着: 🔥 从 IHEP 的内网可以通过隧道访问你 Mac 的任意服务。


② 打通 Mac 的 SSH 服务

你确保了 macOS 的 SSH 服务(sshd)正在运行:

sudo systemsetup -setremotelogin on

检查:

sudo lsof -iTCP:22 -sTCP:LISTEN

看到 sshd-session,说明系统 Remote Login 已启动。


③ 修复 macOS 禁止密码登录的问题

macOS 14 之后默认在 /etc/ssh/sshd_config.d/100-macos.conf 里写死了:

PasswordAuthentication no

你把它改成了:

PasswordAuthentication yes
KbdInteractiveAuthentication no
UsePAM yes

并重启了服务:

sudo systemsetup -setremotelogin off
sudo systemsetup -setremotelogin on

✅ 让 Mac 支持密码登录(用你的系统登录密码)。

etc/ssh/sshd_config也做了相关的修改


④ 验证本地认证正常

你在 Mac 本地执行:

ssh pointsource@localhost

确认密码认证可用。 这确保了“认证机制”在隧道内也能工作。


⑤ 最终验证成功

在 IHEP 登录节点执行:

ssh -p 2222 pointsource@localhost

输入你 Mac 的系统密码 → 登录成功 🎉。

现在你实现了:

从科研内网直接安全回连家中或局域网的 Mac 环境。


🛡️ ⑥ 加强安全(你也做/计划做的)

/etc/ssh/sshd_config.d/100-macos.conf 末尾增加:

PermitRootLogin no
AllowUsers pointsource

防止其他用户尝试连接。


🚀 ⑦ 进阶优化建议(你接下来可以做的)

目标
命令 / 工具
效果

让隧道自动重连

brew install autossh + autossh -M 0 -f -N -R ...

网络断线后自动恢复隧道

后台运行不占终端

-f 参数或用 nohup

Mac 重启后可脚本启动

通过 VS Code Remote-SSH 或 scp 使用

ssh -p 2222 pointsource@localhost

直接远程编辑 Mac 文件

反向开放其他服务(Jupyter、VNC 等)

-R 8888:localhost:8888

可以在 IHEP 内网浏览 Mac 上的 Notebook


🎯 总结一句话

你用标准 SSH 工具、在受限内网环境下,手动构建了一个安全、双向穿透的远程访问通道

这涉及:

  • 网络 NAT 穿透原理;

  • SSH 端口反向转发;

  • macOS 服务层安全策略;

  • PAM / password authentication;

  • launchd 服务重载机制。

可以说是典型的“科研内网穿透工程师级别”操作。

Last updated