パスワードの確認はありませんが、パスワードでログインできます。

パスワードの確認はありませんが、パスワードでログインできます。

なぜまだパスワードを使用してUbuntuシステムにSSHで接続できますか?以下は、/etc/ssh/sshd_configovhでホストされているUbuntu 20.04のファイルです(簡単に説明するためにコメントされていない行のみが表示されます)。

Include /etc/ssh/sshd_config.d/*.conf
Port xxx
PermitRootLogin no
AllowUsers      user1 user2
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem       sftp    /usr/lib/openssh/sftp-server

関連ファイルに対する権限は問題ないようです。

$ stat -c %a /home/user1/.ssh/
700

$ stat -c %a /home/user1/.ssh/authorized_keys`
600

私はsudo service ssh restart走ったsudo service sshd restart

パスワードを使用してSSHを介してUbuntuシステムにログインできるのはなぜですか?ユーザー名とパスワードを使用してSSH(PuTTY)を介してログインできますが、パスワードのみを求めます。 user1とuser2の両方のキーは.sshホームフォルダにあります。なくなったものありますか?

インクルードファイルを確認しました。

-rw------- 1 root root   27 Dec  1 12:52 50-cloud-init.conf
...:/etc/ssh/sshd_config.d$ sudo cat 50-cloud-init.conf
PasswordAuthentication yes

それで、それが理由だと思いますか?しかし、私の設定はこの設定を上書きしませんか?上(一行ずつ)含まれていますか?

答え1

Include /etc/ssh/sshd_config.d/*.confUbuntu / Debianディストリビューションには、デプロイの開始時に非標準のエントリがありますsshd_config。これの目的は、ユーザーがコアファイルを変更せずにsshd構成をカスタマイズできるようにすることで、sshd_configOpenSSHで競合や偶発的な構成変更を最小限に抑えることです。apt update

なぜなら最初見つかった設定行はアプリケーションの行であり、カスタム設定ファイルのすべてのパスワードコマンドはデフォルト設定の行を/etc/ssh/sshd_config.d/*.conf先取りします。PasswordAuthentication noすべての構成が期待どおりであることを確認してください。

@dexterが指摘したように、出力valid configを使用できますsudo sshd -T。これは、ある構成ファイルが別の構成ファイルを上書きしたときに強調表示されることがあります。

答え2

パスワードログインは単に通過するものではありませんPasswordAuthentication。実際、これは「専用シンプル」認証方法であり、KbdInteractiveAuthentication以前はChallengeResponseAuthenticationとして知られている普遍的なパスワード認証方法があります。追加またはカスタムの質問で、2段階の操作、ワンタイムパスワードの使用などを実行できるチャットなどの汎用認証(チャレンジレスポンスの意味)。一方、前者はシステムパスワードを介した名前の伝達のみを許可します。認証のため。

UsePAMPAMはsshdとPAMの試行応答チャットを提供できますKbdInteractiveAuthenticationChallengeResponseAuthenticationPasswordAuthentication通常pam_unix.so既存のパスワード認証を実行するように構成され、UsePAM+ KbdInteractiveAuthenticationSSH に対するパスワード認証を効果的に提供します。 (これを知ってくれた@TooTeaに感謝します。)

いいね! もっと回答を見るここ(悲しいことに、これは明らかに良いので、許容される答えではありません。)man sshd_configもちろん参照してください。

答え3

PasswordAuthentication yes次のおかげで含まれているファイルが使用されましたman sshd_config「キーワードごとに最初に取得した値が使用されます。」

SSH経由でログインしようとすると「サポートされる認証方法(公開鍵)はありません。」

SSHキーのみ有効です。

答え4

matchセクションを使用する順序が重要であることを覚えておいてください。

これはうまくいきます:

Match User user-special
    PasswordAuthentication yes

Match User user-ftp
    AuthorizedKeysFile /home/user-ftp/.ssh/authorized_keys
    ChrootDirectory /DATA/s2survey
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

Match all
    PasswordAuthentication no
    KbdInteractiveAuthentication no
    ChallengeResponseAuthentication no

ただし、コマンドは期待どおりに機能しません。無視されるか(理由が不明)、より具体的なセクションPasswordAuthenticationでは変更されません。match

PasswordAuthentication no
KbdInteractiveAuthentication no
ChallengeResponseAuthentication no

Match User user-special
    PasswordAuthentication yes

Match User user-ftp
    AuthorizedKeysFile /home/user-ftp/.ssh/authorized_keys
    ChrootDirectory /DATA/s2survey
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

Match all

関連情報