usermod的手册页说这关于locking用户帐户:
-L, --lock Lock a user's password. This puts a ´!´ in front of the encrypted password, effectively disabling the password. You can´t use this option with -p or -U.
我试图用这个来让用户只用公钥login,但是当我locking帐户时,我得到一个密码提示。 当我再次解锁帐户时,公钥起作用。
编辑:说清楚:我想能够仍然使用该密钥login,并以某种方式locking用户在尝试使用密钥时给我一个密码提示
正如手册页所说,这有效地locking了密码 – 因为它使得不可能使用这个帐户上的现有密码。
它不禁用基于密码的login – 您需要为此设置正确的sshd(8)选项。
我假设你的意思是“通过SSH远程login”,因为我不知道如何在本地使用公钥。
locking你的密码与usermod实际上locking你的整个帐户,因为你注意到了。 (系统将密码前面添加的“ !标记为不允许您login的标志。)
如果你打破了你的密码散列,把eg *放在它的前面,你仍然可以使用公钥login。
真的你想要一个可能的控制台login密码等,但禁用密码loginssh。
的/ etc / SSH / sshd_config中:
PasswordAuthentication no