Paradeepchhetri は正確には正しくありません。
Debian の未修正の sshd_config
以下があります:
PubkeyAuthentication yes
PermitEmptyPasswords no
UsePAM yes
したがって、ssh 経由のログインは、/etc/shadow
に入力されたパスワード フィールドを持つユーザーに対してのみ機能します。 または ~/.ssh/authorized_keys
の ssh キー . PubkeyAuthentication
のデフォルト値に注意してください。 yes
です PermitEmptyPasswords
の場合 no
です であるため、削除しても動作は同じです。
質問例では www-data
Debian のインストーラーはパスワードを割り当てたり、www-data
のキーを作成したりしないため、デフォルトではログインが許可されません。 .
pam_access
、 AllowUsers
と AllowGroups
sshd_config
で 必要に応じて、より細かい制御に使用できます。 Debian では UsePAM
することが強く推奨されています .
デフォルトでは、Debian のすべてのユーザーにログインが許可されています。
/etc/ssh/sshd_config
を編集してログインできる特定のユーザーを許可することで変更できます ファイル。
sshd_config の man ページに記載されているとおりです。
<ブロック引用>
AllowUsers
このキーワードの後に、ユーザー名のパターンのリストを続けます。
スペース。指定した場合、いずれかのパターンに一致するユーザー名のみにログインが許可されます。ユーザー名のみが有効です。数値のユーザー ID ではありません
認識された。デフォルトでは、すべてのユーザーに対してログインが許可されています。パターンが [email protected]
の形式の場合 次に USER
と HOST
個別にチェックされ、特定のホストからの特定のユーザーへのログインが制限されます。 allow/deny ディレクティブは次の順序で処理されます:DenyUsers
、 AllowUsers
,DenyGroup
、そして最後に AllowGroups
.
デフォルトでは、SSH server
インストールすらされていません。 openssh-server
をインストールする必要があります 誰もが SSH でログインする前にパッケージ化します。
その後、ユーザーは次の 2 つのチェックに合格する必要があります。
- SSH 認証
- PAM アカウント チェック
SSH 認証とは、ユーザーが /etc/shadow
の有効なパスワードを持っている必要があることを意味します または、対象ユーザーの ~/.ssh/authorized_keys
に適切な権限を持つ有効な SSH 公開鍵を持っている .
有効なパスワードは、crypt(3)
で詳しく説明されています。 man ページ、しかし基本的に /etc/shadow
のユーザーの 2 番目のフィールドの場合 $NUMBER$
で始まる何か 、おそらく有効で、*
の場合 または !
、無効です。
PAM アカウント チェックは、基本的に、アカウントが期限切れになっていないことを意味します。 chage -l USERNAME
を使用して確認できます .
私の知る限り、あなたの質問に答えるには:
<オール>www-data
*
のハッシュ化されたパスワードを持っています そして ~www-data/.ssh/authorized_keys
はありません ファイルgrep -v '^[^:]*:[!*]:' /etc/shadow
を実行してみてください。