OpenSSHでパスワード認証と公開鍵認証の両方を有効にするにはどうすればよいですか


10

sshdがユーザーの公開鍵を検証し、どちらか一方ではなく、パスワードを要求するようにしたいと思います。これは可能ですか?

回答:



12

これは、構成オプションを使用して、OpenSSH 6.2(2013年3月リリース)以降最終的に利用可能ですAuthenticationMethods

たとえば、次の行をsshd_configに追加して、公開鍵認証とパスワード認証の両方を要求できます。

AuthenticationMethods publickey,password

ときにログインし、sshそしてscp最初のパスワードを公開鍵認証した後、プロンプトを実行します。

$ 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

RHEL / CentOS 6.3のOpenSSHがこの機能をサポートするようになりましたが、OpenSSHリリースノートには記載されていません。RHELのリリースノート

SSHは、複数の認証方法を要求するように設定できるようになりました(以前のSSHでは複数の認証方法が許可されていましたが、ログインを成功させるために必要な認証方法は1つだけでした)。たとえば、SSH対応のマシンにログインするには、パスフレーズと公開鍵の両方を入力する必要があります。RequiredAuthentications1そしてRequiredAuthentications2オプションを構成することができる/etc/ssh/sshd_config。で成功したログのために必要とされる例えば認証を指定するファイル:

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

前述の/etc/ssh/sshd_configオプションの詳細については、sshd_configmanページを参照してください。


0

それは可能ですが、お粗末で限られた方法で行われます。まず、公開鍵認証のみを許可します。次に、パスワードをチェックするスクリプトを実行するを/etc/ssh/sshd_config追加ForceCommandします。

コマンドがsftpであることを確認し、パスワードなしでそれを許可しない限り、スクリプトはSFTPを中断します。

私はこれを試したことがないので、誰かがもっと問題を見ることができるかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.