有没有用 macOS 作 SSH server 的啊,修改了 /etc/ssh/sshd_config
,改了默认端口和禁止了密码登录,重启了 openssh 进程,但是没有生效
看了一些教程,还把 usePAM 改成 yes 了,也没有用。
重启进程用的是
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
系统 14.0
1
MrKrabs 2023-10-26 23:44:36 +08:00
禁用自带 sshd ,用 brew 的 ssh service 得了
|
2
riddle4ever 2023-10-26 23:52:55 +08:00 via iPhone
貌似设置里有个远程的开关 得打开
|
3
chrisy4382 OP |
4
julyclyde 2023-10-27 12:42:10 +08:00
能确认 Mac 的 sshd 用的 sshd_config 就是你改的那个路径吗?
以及,mac 上有 usePAM 这个东西吗?? |
5
chrisy4382 OP @julyclyde 我看了一些问题,有些说是/etc/ssh/sshd_config 有些说是/private/etc/ssh/sshd_config ,但是我测试了下这两个文件是同步变化的;他们好像在比较早的 macOS 版本上可以成功生效;
有没有 usePAM 我不清楚,他这个原本是被注释掉的 no ,我看有些文章把这个启用了并且改成了 yes ,但是我用起来好像没什么区别 |
6
julyclyde 2023-10-27 18:41:18 +08:00
|
7
chrisy4382 OP @julyclyde 就是我想要换个端口并且禁止密码登录,但是修改并重启完之后还是只能用 22 端口,依旧可以用密码登录
|
8
julyclyde 2023-10-28 13:00:19 +08:00
哦。我这里 macOS sonoma 版本。看了一下进程树和 plist ,大概明白了
开启“远程管理”然后 ssh 到本机,然后查看进程树,发现 ps 的父进程是-zsh (横线开头表示 login shell 类型) -zsh 的父进程是 sshd: 用户名 @ttys001 然后这个 sshd 的父进程是 sshd: 用户名[priv] 再父进程就是 1 号了 比一般 linux 的 sshd 缺一个 sshd listen 进程 查看 plist 发现里边有一句 inetdCompatibility ;以及,Listeners 的 SockServiceName 为 ssh 所以实际上监听端口的是 launchd 而不是 sshd ;监听端口号为 ssh 也就是/etc/services 文件里列出的 ssh 这一行 改过之后需要让 launchd 知道变动才可以生效。这事和 sshd 已经没啥关系了 至于密码登录,我猜你查的大概也都是 linux 方面的资料。 首先要区分,Password 和 ChallengeResponse 两种 ssh 验证方式。前者叫密码验证,后者可以是密码验证(看 PAM 里咋设置的) 按你的需求,这俩选项都需要关闭才可以 |