web-dev-qa-db-ja.com

sshd_configファイルで「パスワードなし」とはどういう意味ですか?

サーバーにUbuntu 14.04をインストールしたばかりで、sshd_configファイルでこれに遭遇したときにすべての設定ファイルを設定していました。

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

これは私をとても心配させました。誰かがパスワードなしでrootとしてサーバーにログインできる可能性があると思いました。

次の方法でルートとしてサーバーに接続してみました:

johns-mbp:~ john$ ssh [email protected]
The authenticity of Host '192.168.1.48 (192.168.1.48)' can't be established.
RSA key fingerprint is 40:7e:28:f1:a8:36:28:da:eb:6f:d2:d0:3f:4b:4b:fe.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.48' (RSA) to the list of known hosts.
[email protected]'s password:  

私は空のパスワードを入力しましたが、それは私を入れませんでした、それは安心でした。だから私の質問は次のとおりです:パスワードなしで何が意味するのか、そしてこれがUbuntu 14.04のデフォルトなのはなぜですか?

117
John

manpage から:

PermitRootLogin

ルートが ssh (1)を使用してログインできるかどうかを指定します。引数は、「yes」、「without-password」、「forced-commands-only」、または「no」である必要があります。デフォルトは「yes」です。

このオプションが「パスワードなし」に設定されている場合、パスワード認証はルートに対して無効になります。

このオプションが「forced-commands-only」に設定されている場合、commandオプションが指定されている場合にのみ、公開鍵認証によるルートログインが許可されます(これは、ルートログインでも通常は許可されていません)。他のすべての認証方法は、ルートに対して無効になっています。

このオプションが「no」に設定されている場合、rootはログインできません。

したがって、without-passwordは、公開鍵認証でのみルートログインを許可します。これは、シェルスクリプトおよび自動化されたタスクでよく使用されます。

141
Florian Diesch

実際、PAM認証を使用している場合、この設定はほとんど何もしません。 sshd_config構成ファイルの下部には次のものがあります。

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.

Ubuntuのデフォルト設定では、PAM認証を使用します。

UsePAM yes
16
Atari911

ルート経由でログインする正当な理由があることに注意してください(ただし、暗号化キーとneverパスワードを使用します)。典型的な例は、2台のサーバーをリモートで同期することです(そのうちの1台をフェイルオーバーとして使用するため)。構造は同一でなければならないため、多くの場合、ルートパスワードが必要です。

以下は、同期にユニゾンを使用した例です。 https://serverfault.com/questions/341985/remotely-use-root-over-ssh-for-unison

3

Sshdの新しいバージョンでは、「パスワードなし」が「パスワード禁止」に変更されました。

両方のバージョンが機能します。可能な場合は、おそらく「パスワード禁止」を使用するのが最善です。

2
teknopaul