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