为什么对 /etc/passwd 的更改没有生效?

Tha*_*tos 4 login ssh

我已经/etc/passwd通过运行usermod -s来更改我的外壳进行编辑。(chsh不起作用,因为它会提示输入密码;我们通过 SSH 使用密钥。)

当我断开连接并重新连接时,更改不会生效。我也重启sshd了,还是不行

Tha*_*tos 7

我使用ControlMaster,我实际上并没有断开连接。

ControlMaster是一个 SSH 配置选项,可以在一定时间内保持连接打开,并且可以在同一连接上多路复用 SSH 会话(避免密钥交换,这很慢)。但是,如果您从 shell 中 ^D ,然后重新运行ssh您还没有终止原始连接

重新启动sshd只会重新启动侦听过程:任何正在进行的会话都保持活动状态,因此也不会重新启动连接。

显然,启动新 shell 不会重新检查/etc/passwd更改。

解决方案只是终止连接:ssh <hostname> -O exit,然后重新登录。