Linux

無法通過 ssh 進入正在執行的 dropbear sshd。“密碼嘗試錯誤” …但密碼正確

  • February 6, 2019

出於某種原因,我在 Docker 容器中執行的 dropbear sshd 告訴我Bad password attempt,即使我已經多次檢查使用者名和密碼都是 100% 正確的。

supervisord使用以下命令啟動 Dropbear :

/usr/local/sbin/dropbear -F -E -p 2222

由使用者和組“mysticbbs”。dropbear 執行時沒有出現錯誤..

但是,當我嘗試從主機 ssh 進入容器時,使用:

ssh -o UserKnownHostsFile=/dev/null localhost -l mysticbbs -p 2222

(’-o UserKnownHostsFile=/dev/null’ ,以防止儲存在測試/建構 dockerfile 期間生成的大量不同密鑰)

..ssh,如預期的那樣,給了我:

ECDSA 密鑰指紋為 SHA256:0WadKddpa*

$$ ..blabla. $$*您確定要繼續連接(是/否)?

然後我被要求輸入密碼。但是無論我是否輸入或粘貼它,100% 正確..我仍然得到並 dropbear 用..Permission denied, please try again.記錄嘗試Bad password attempt for 'mysticbbs' from 172.17.0.1:35152

  • 我嘗試設置不同/更複雜的密碼
  • 嘗試dbclient從容器內部使用相同的使用者 dropbear 執行 ssh,並且在不使用 supervisord 的情況下執行 dropbear,沒有區別。( Bad password attempt for 'mysticbbs' from 127.0.0.1:48110) ..
  • /etc/dropbear 文件夾(和密鑰)被 chowned 到 ‘mysticbbs:mysticbbs’ 和 chmod 到 700
  • 無論我是使用dropbear來自 alpine 的 apk repo (v2018.76-r2)還是從 dropbear.nl 源建構它(v2018.76 和 v2017.75 都經過測試),都會出現同樣的問題。
  • 刪除鍵並使用參數手動執行 dropbear-R沒有區別。
  • 在https://github.com/mkj/dropbear找到了一個符號,但我看不出它是如何應用的,因為使用者嘗試 ssh與執行 dropbear的使用者相同:

如果伺服器以非 root 身份執行,您很可能無法分配 pty,並且除了執行守護程序的使用者(顯然)之外,您無法以任何使用者身份登錄。影子密碼也將無法作為非 root 使用者使用。

  • 影子密碼可能是罪魁禍首..

密鑰是在 docker 建構期間生成的,具有以下內容:

  export RSA_KEYFILE=/etc/dropbear/dropbear_rsa_host_key
  export DSS_KEYFILE=/etc/dropbear/dropbear_dss_host_key
  export ECDSA_KEYFILE=/etc/dropbear/dropbear_ecdsa_host_key
  dropbearkey -t dss -f $DSS_KEYFILE
  dropbearkey -t rsa -f $RSA_KEYFILE
  dropbearkey -t ecdsa -f $ECDSA_KEYFILE
  chown -R mysticbbs:mysticbbs /etc/dropbear
  chmod -R 700 /etc/dropbear

mysticbbs 使用者的密碼是在 docker build 期間設置的:

  passwd mysticbbs -d '<password>' -u

我錯過了什麼?…

正如@michael-hampton在評論中指出的那樣,以及在https://github.com/mkj/dropbear的註釋:

如果伺服器以非 root 身份執行,您很可能無法分配 pty,並且除了執行守護程序的使用者(顯然)之外,您無法以任何使用者身份登錄。影子密碼也將無法作為非 root 使用

當以非 root 使用者身份執行 dropbear 時,我的問題似乎確實出現在影子密碼上。

我的具體情況下,在alpine:3.9/BusyBox下,將root添加到我的“ mysticbbs ”組,並根據需要刪除 root 權限,而不是讓root/etc/shadow以外的使用者可以訪問*(例如,將“mysticbbs”或專用系統使用者添加到“影子”組(?)..我什至不打算測試它。雖然我想這也可能是一個潛在的解決方法。)*。

編輯:將執行 dropbear 的使用者添加到shadow組似乎更容易..畢竟/etc/shadow仍然是chmod 640 (僅對root使用者可寫,但對影子組可讀)

ls -la /etc/shadow 

-rw-r—– 1 根影子 503 Feb 6 16:33 /etc/shadow

(注意:可能不推薦在高安全性是重中之重的情況下)

引用自:https://serverfault.com/questions/952545