web-dev-qa-db-ja.com

デフォルトでSSHを介してログインできるのはどのユーザーですか?

  1. Debian 6をセットアップしたとき、root以外に、SSH経由で自分のシステムにログインできるパスワードを知っているユーザーは誰でしょうか?

  2. Apache 2をインストールすると、www-dataというユーザーが作成されます。このユーザーには、SSH経由でシステムにログインする権利がありますか?しかし、誰もがログインできるwww-dataにデフォルトのパスワードがあったとしても、私にはそう思われません。

  3. SSH経由でシステムにログインできるユーザーのリストはどこにありますか? ssh設定ファイルに何も見つかりません。

18
JohnnyFromBF

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_accesssshd_configAllowUsersおよびAllowGroupsは、必要に応じてより細かく制御するために使用できます。 DebianではUsePAMを強くお勧めします。

20
bahamat

デフォルトでは、Debianのすべてのユーザーがログインできます。

/etc/ssh/sshd_configファイルを編集してログインできる特定のユーザーを許可することで、これを変更できます。

Sshd_configのmanページで述べたように。

AllowUsers

このキーワードの後に​​は、次で区切られたユーザー名パターンのリストを続けることができます。
スペース。指定した場合、パターンの1つに一致するユーザー名に対してのみログインが許可されます。ユーザー名のみが有効です。数値のユーザーIDは
認識。デフォルトでは、ログインはすべてのユーザーに許可されています。パターンの形式がUSER@Hostの場合、USERHostが別々にチェックされ、特定のホストからの特定のユーザーへのログインが制限されます。許可/拒否ディレクティブは、DenyUsersAllowUsersDenyGroup、最後にAllowGroupsの順に処理されます。

10
pradeepchhetri

デフォルトでは、SSH serverはインストールされていません。誰かがSSHで接続する前に、openssh-serverパッケージをインストールする必要があります。

その後、すべてのユーザーが2つのチェックに合格する必要があります。

  • SSH認証
  • PAMアカウントのチェック

SSH認証とは、ユーザーが/etc/shadowに有効なパスワードを持っているか、ターゲットユーザーの~/.ssh/authorized_keysに適切な権限を持つ有効なSSH公開鍵を持っていることを意味します。

有効なパスワードについては、crypt(3)のマニュアルページで詳しく説明していますが、基本的には、/etc/shadowのユーザーの2番目のフィールドが$NUMBER$で始まる場合は有効であり、*または!の場合は無効です。

PAMアカウントチェックは、基本的にアカウントの有効期限が切れていないことを意味します。これはchage -l USERNAMEを使用して確認できます。

だから私の質問にあなたの質問に答えるために:

  1. 新しいシステムにログインできるのは、ルートとインストールウィザードで作成したアカウントだけです。
  2. いいえ、www-dataには*のハッシュ化されたパスワードがあり、~www-data/.ssh/authorized_keysファイルがないため
  3. 複数の要件があるため、単一のリストはありませんが、アイデアを得るために、grep -v '^[^:]*:[!*]:' /etc/shadowを実行してみてください。
7
Mikel