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