Sshdがユーザーの公開鍵を確認し、どちらか1つではなく、パスワードを要求するようにしたいと思います。これは可能ですか?
現在はできません。しかし、これを追加することになっているいくつかのパッチが浮かんでいます。
これは、AuthenticationMethods
構成オプションを使用して、最終的に利用可能です OpenSSH 6.2以降 (2013年3月にリリース)。
たとえば、次の行をsshd_config
に追加して、公開鍵認証とパスワード認証の両方を要求できます。
AuthenticationMethods publickey,password
ログインすると、ssh
とscp
は最初に公開鍵認証を実行し、次にパスワードを要求します。
$ 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:
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
のマニュアルページを参照してください。
それは可能ですが、お粗末で制限された方法で行われます。まず、公開鍵認証のみを許可します。次に/etc/ssh/sshd_config
パスワードをチェックするスクリプトを実行するForceCommand
を追加します。
コマンドがsftpであることを確認し、パスワードなしでそれを許可しない限り、スクリプトはSFTPを中断します。
私はこれを試したことがないので、誰かがもっと問題を見ることができるかもしれません。