Linux

SSH 要求輸入密碼,但沒有密碼我可以通過串口進入

  • November 21, 2018

我有一個執行 GNU/Linux 的 arm7 板,它通過乙太網埠連接到網際網路。我正在嘗試以 root@IPaddr 身份通過 SSH 登錄,但它提示我輸入密碼。我很確定從未在上面設置過密碼。我實際上也更改了 sudoers 文件:

根 ALL=(ALL) NOPASSWD: ALL

但沒有用。儘管沒有提示輸入密碼,但我可以通過串列埠進入它。我有點失落。

root@mur0011:~# ls -la .ssh/
drwx------    2 root     root          4096 Nov  8 01:10 .
drwxr-xr-x   10 root     root          4096 Nov  8 01:10 ..
-rw-------    1 root     root          2347 Jun  1 21:20 authorized_keys
-rw-------    1 root     root          1675 May 31 23:19 id_rsa
-rw-r--r--    1 root     root           397 May 31 23:19 id_rsa.pub
-rw-r--r--    1 root     root           803 Jun  1 19:51 known_hosts
root@mur0011:~# uname -a
Linux mur0011 3.14.38-6UL_ga+ge4944a5 #1 SMP PREEMPT Wed Mar 14 16:48:19 
PDT 2018 armv7l GNU/Linux
root@mur0011:~# whoami
root

伺服器將sshd始終要求輸入密碼,除非您將其配置為允許空密碼。此外,它最新的預設配置sshd被配置為禁止 root 登錄或僅允許 root 使用公鑰身份驗證。

因此,您應該確保 root 可以通過 ssh 登錄並且允許使用空密碼:

/etc/ssh/sshd_config

PermitRootLogin yes
...
PasswordAuthentication yes
PermitEmptyPasswords yes
...

您還需要設置一個空的 root 密碼。這與沒有密碼不同。無密碼被定義為不存在的密碼或非法密碼。在任何一種情況下,都需要一個隱含但無法輸入的密碼。當然,這意味著root將無法直接登錄。所以,anempty password是必需的。

請注意:

這是非常差的安全性,只能在不能從 Internet 直接訪問的受信任網路中使用。

引用自:https://unix.stackexchange.com/questions/480476