如何使用OpenSSH启用密码和公钥身份验证


Answers:



12

使用配置选项,此版本终于从OpenSSH 6.2(2013年3月发布)开始可用AuthenticationMethods

例如,您可以在下面添加以下行,sshd_config以要求同时进行公钥和密码身份验证:

AuthenticationMethods publickey,password

当记录,sshscp会先进行公共密钥验证,然后提示输入密码:

$ ssh user@example.org
Authenticated with partial success.
user@example.org's password:

如果您的私钥文件上有密码,则首先会提示您输入密码。使用PuTTY的示例:

Using username "user".
Authenticating with public key "rsa-key-20131221-user"
Passphrase for key "rsa-key-20131221-user":
Further authentication required
user@example.org's password:

1

尽管在OpenSSH发行说明中找不到该功能,但RHEL / CentOS 6.3中的OpenSSH现在支持此功能。从RHEL发行说明

现在可以将SSH设置为要求多种身份验证方式(而以前的SSH允许多种身份验证方式,成功登录只需要一种方式);例如,登录到启用SSH的计算机时,需要输入密码和公共密钥。该RequiredAuthentications1RequiredAuthentications2选项可以在配置/etc/ssh/sshd_config文件来指定要成功登录例如认证:

  ~]# echo "RequiredAuthentications2 publickey,password" >> /etc/ssh/sshd_config

有关上述/etc/ssh/sshd_config选项的更多信息,请参见sshd_config手册页。


0

这是可能的,但以一种杂乱无章且有限的方式。首先,您仅允许公共密钥身份验证。然后在中/etc/ssh/sshd_config添加一个ForceCommand执行脚本的脚本,该脚本将检查密码。

除非您检查命令为sftp并允许其通过而无需输入密码,否则脚本将中断SFTP。

我从未尝试过这样做,因此有人可能会看到更多问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.