
私は Gnu/Linux と UNIX の初心者です。この OS の基礎を学ぶためにゲームをプレイしています。
ssh
私がプレイしているゲームの一部として、秘密鍵証明書とユーザー名(パスワードなし)のみを使用して、リモート サーバーにログオンする必要があります。
- リモート マシン (別のユーザー名でログインしているマシン) から SSH を使用してログインすると、パスワードなしでアクセスできるようになります。
- ローカルマシンからログインしようとすると、SSH によってパスワードの入力を求められます。
これは、アクセスしようとしているサーバーの SSH 構成の結果でしょうか?
つまり、ローカルホスト (この場合はサーバー) からログインする場合と、リモート マシン (この場合は自分の PC) からログインする場合に、SSH は異なるログイン ポリシーを適用できるということですか?
本当にありがとう
ございます。よろしくお願いいたします。
答え1
これは、アクセスしようとしているサーバーの SSH 構成の結果でしょうか?
共有していただいた詳細情報に基づいて判断することはできません。同じシステム上で実行されている、独立して構成された 2 つの異なる SSH デーモンに接続している可能性もあります。
つまり、SSH は、ローカルホスト (この場合はサーバー) からログインする場合と、リモート マシン (この場合は自分の PC) からログインする場合で異なるログイン ポリシーを適用できるということですか?
はい、SSH サーバーは着信接続のさまざまなプロパティに基づいて異なるポリシーを適用できます。
たとえば、Match
OpenSSHsshd
の設定でキーワードを使用すると、指定された条件のリストが満たされた場合にのみ適用される(以前に設定されたものを上書きする)ディレクティブをグループ化する条件ブロックを定義できます(詳細については、man 5 sshd_config
)。
このブロックを次の場所に追加します/etc/ssh/sshd_config
(正確な場所はシステムによって異なる場合があります):
PubkeyAuthentication yes
Match Address "!127.0.0.1,!::1,*"
PubkeyAuthentication no
指示しsshd
ます:
- デフォルトで公開鍵認証を許可する。
127.0.0.1
および以外のアドレスからの接続に対して公開鍵認証を許可しません::1
。
(頭痛の種を省くメモ:man 5 ssh_config
, 「パターン」,
[...] 否定一致だけでは、肯定的な結果が生成されることはありません。 [...] ここでの解決策は、ワイルドカードなど、肯定的な一致を生成する用語を含めることです [...]
そのため、末尾に"!127.0.0.1,!::1,*"
が含まれます*
。