前言
我的笔记本被拿去做 NAS 了,上课的时候没有电脑可用,但在有些课上需要处理一些代码问题,iPad 的可操作性又太差了,于是我就利用路由器提供的 DDNS 服务搭配 DMZ 服务把自己的黑苹果映射到网络上去提供 sshd 服务。
但是为了提高安全性,我希望能够修改 sshd 服务的对外端口和认证方式。如果是一般是类 unix 系统的话直接修改 /etc/ssh/sshd_config
配置文件再重启 sshd 服务就可以了,但是苹果为了保证主机安全是将 sshd 作为系统内嵌服务对用户开放的,导致 sshd 的配置文件被拆分到系统的各个犄角旮旯中。
这就导致我们无论怎么修改 /etc/ssh/sshd_config
文件都无法对 sshd 服务产生影响,在踩了几个坑之后我觉得有必要记录一下正确的修改姿势。
本人操作环境:macOS Big Sur 11.6
修改 macOS sshd 端口
正确姿势:
sudo vim /etc/services
- 找到 ssh,修改对应端口即可
- 重启 sshd 服务(或者重启电脑都行)
错误姿势:
- 直接修改
/etc/ssh/sshd_config
的 Port 选项 - 修改
/System/Library/LaunchDaemons/ssh.plist
配置文件(这个或许可行,但是我这边一直提示没有修改权限,哪怕我关闭了 SIP)
修改 macOS sshd 其他配置
正确姿势:直接修改 /etc/ssh/sshd_config
然后重启 sshd 即可
我做了哪些修改
- 修改 sshd 端口
- 关闭 sshd PasswordAuthentication 认证
- 开启 sshd PubkeyAuthentication 认证
个人认为做到以上三点就基本能够确保服务的安全性了,记得在系统的 ~/.ssh/authorized_keys
中添加常用设备的密钥就可以了,以后在其他设备连接此系统的时候连密码都不用输,安全又便捷。