回答:
チェックはUIDで行われたようです(テスト済みOpenSSH_6.7p1 Debian-5+deb8u3, OpenSSL 1.0.1t 3 May 2016
):
PermitRootLoginをオフに設定します。
mtak@pdv1:~$ grep PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin no
という名前のユーザーadmin
がUID 0で作成されていることを確認します。
mtak@pdv1:~$ sudo grep admin /etc/passwd
admin:x:0:0:Root User:/root:/bin/bash
ユーザーがシステムへのログオンに使用できることを確認します。
mtak@pdv1:~$ su - admin
Password:
root@pdv1:~#
SSHを使用してシステムにログオンできるかどうかを確認します。
mtak@rubiks:~$ ssh admin@pdv1
admin@pdv1's password:
Permission denied, please try again.
PermitRootLoginをオンにした場合:
mtak@pdv1:~$ grep PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin yes
ログオンしてみてください:
mtak@rubiks:~$ ssh admin@pdv1
admin@pdv1's password:
Linux pdv1 4.4.8-1-pve #1 SMP Tue May 17 16:14:08 CEST 2016 x86_64
Last login: Wed Aug 24 12:05:28 2016 from xxx
root@pdv1:~#
他の回答で@mtakのアプローチに感謝しますが、この試行がなくても答えは明らかです。
opensshのソースコードでUID
わかるように、これはに基づいています。
if (authctxt->pw->pw_uid == 0 &&
!auth_root_allowed(auth_method))
authenticated = 0;
if (pw->pw_uid == 0 && options.permit_root_login != PERMIT_YES)
ok = 0;
grep
-コードをさらに進めると、strcmp('root', pw->pw_name)
十分な代替手段がないか、または代替手段がない場合があります。
sshd
?ステートメントをサポートするために引数を使用していません。
root@pdv1
が、シェルのように表示されます