ssh不允许我登录,因为帐户被锁定了。我想通过ssh解锁我的服务器上的用户以获得公钥授权,但不要启用密码编辑的登录。
我试过:
# passwd -u username
passwd: unlocking the password would result in a passwordless account.
You should set a password with usermod -p to unlock the password of this account.Auth日志条目:
Mar 28 00:00:00 vm11111 sshd[11111]: User username not allowed because account is locked
Mar 28 00:00:00 vm11111 sshd[11111]: input_userauth_request: invalid user username [preauth]发布于 2015-03-28 09:35:25
按照@Skaperen的建议,解锁帐户并为用户提供一个复杂的密码。
编辑/etc/ssh/sshd_config并确保:
PasswordAuthentication no检查该行是否有注释(开始时为#),并保存文件。最后,重新启动sshd服务。
在进行此操作之前,请确保您的公钥身份验证首先起作用。
如果只需要对一个用户(或少数用户)执行此操作,则保留启用PasswordAuthentication,而使用Match User:
Match User miro, alice, bob
PasswordAuthentication no将文件放在文件的底部,因为它是有效的,直到下一个Match命令或EOF。
还可以使用Match Group <group name>或否定式Match User !bloggs。
正如您在注释中提到的,您还可以反转它,以便在配置的主要部分禁用密码身份验证,并使用Match语句为少数用户启用它:
PasswordAuthentication no
.
.
.
Match <lame user>
PasswordAuthentication yes发布于 2015-03-28 20:23:11
无论您做什么,不要将帐户保留在passwd -u留下的状态,带有一个空白密码字段:允许登录而不输入密码(除了SSH之外,因为SSH拒绝)。
将帐户更改为没有密码,但被解锁。如果密码数据库中的密码哈希不是任何字符串的哈希,则帐户没有密码。传统上,只有一个字符的字符串(如*或! )用于此。
锁定的帐户还使用密码字段中的特殊标记,该标记会导致字符串不是任何字符串的散列。标记是系统依赖的。在Linux上,passwd命令通过在开头放置一个!来标记锁定的密码,如果字段以!开头,则OpenSSH将帐户视为锁定帐户。其他Unix变体倾向于使用类似但不相同的机制,因此,如果您的密码数据库是在异构网络中共享的,请注意。
在Linux上,您可以禁用对帐户的基于密码的访问,同时允许SSH访问(使用其他身份验证方法,通常是密钥对)。
usermod -p '*' username用户将无法将帐户更改为有密码,因为这需要他们输入有效的密码。
如果需要,可以将SSH配置为拒绝密码身份验证,而不管帐户是否有密码。您仍然需要安排SSH不考虑帐户被锁定,因此,例如,在Linux上,您需要从密码字段中删除! (但不要像上面解释的那样将字段- set空为* )。若要禁用SSH的密码身份验证,请将PasswordAuthentication指令添加到/etc/sshd_config或/etc/ssh/sshd_config (无论其在系统上如何)。使用Match块使该指令仅适用于特定用户;必须显示Match块
…
Match User username
PasswordAuthentication no发布于 2017-02-14 01:15:10
如果您已经在使用强密钥,则不需要启用或设置密码,而且您也不需要启用或设置密码。只需从现有会话重新锁定您的帐户(sudo -l用户名),并修复您的SSH配置。
发生这种情况的原因可能是因为您编辑了默认的SSH守护进程设置之一(在/etc/ssh/sshd_config中)。
在/etc/ssh/sshd_config中更改它并重新启动SSH:
UsePAM yes在SSH中启用PAM将允许您仍然登录,即使删除了密码。无论您做什么,不要设置一个空密码或类似的;锁定密码字段并不意味着锁定您的整个帐户。
配置SSH守护进程时的快速提示:每当对SSH配置进行更改时,保持另一个会话打开(在另一个窗口中),然后测试是否仍然可以登录;如果您无意中破坏了您的访问权限,请使用先前的会话来修复它。
(免责声明:我在Userify工作。)
https://unix.stackexchange.com/questions/193066
复制相似问题