web-dev-qa-db-ja.com

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

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

10
surprise_

現在はできません。しかし、これを追加することになっているいくつかのパッチが浮かんでいます。

https://bugzilla.mindrot.org/show_bug.cgi?id=98 を参照してください

2
Bill B

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

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

AuthenticationMethods publickey,password

ログインすると、sshscpは最初に公開鍵認証を実行し、次にパスワードを要求します。

$ ssh [email protected]
Authenticated with partial success.
[email protected]'s password:

秘密鍵ファイルにパスワードがある場合、もちろん最初にそれを要求されます。例 PuTTYを使用

Using username "user".
Authenticating with public key "rsa-key-20131221-user"
Passphrase for key "rsa-key-20131221-user":
Further authentication required
[email protected]'s password:
12
Søren Løvborg

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_configのマニュアルページを参照してください。

1
mgorven

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

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

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

0
Mark Wagner