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