我在主機上有一個特定的用戶(讓我們user
在這篇文章中稱呼他們),當嘗試透過公鑰身份驗證進行 ssh 時,該用戶顯示以下錯誤:
PTY allocation request failed on channel 0
Direct login access is disallowed
我可以使用 來緩解第一個錯誤ssh user@host "/bin/bash -i"
,但無法克服第二個錯誤。
我嘗試過的事情:
- 我可以
sudo -s
(或sudo -i
直接以主機上的 root 使用者身分。 - 用戶已被鎖定 (
passwd -l user
),我解鎖並為該用戶分配了密碼。同樣的問題。但是su - user
,在帳戶解鎖並套用密碼後,我可以像任何其他用戶一樣進行操作。 - 我檢查了
/etc/ssh/sshd_config
伺服器,沒有AllowUsers
,AllowGroups
,DenyUsers
,的條目DenyGroups
。 - 我可以直接以 root 身分進行 ssh ,沒有問題。
- 我創建了一個新用戶,也能夠直接透過 ssh 連接到他們。
- 確認 ssh 密鑰選擇和授權密鑰設定正確,但我認為這不是關鍵問題。
/etc/passwd
顯示使用者已/bin/bash
為其 shell 設定。/etc/security/access.conf
已完全註解掉,未設定任何設定。- 重啟sshd很多次。
- 沒有
/etc/login.blocks
文件。 /var/log/secure
,/var/log/messages
, 也不journalctl -fu sshd
只顯示Session open
然後Session closed for user user
ssh user@host -vvvvvvv
只是顯示Direct login access is disallowed
- 重新啟動主機。
注意:這是一個尚未啟用訂閱的 rhel 系統。
是什麼賦予了?為什麼我無法訪問這個
答案1
弄清楚了。這是某人編寫的一個限制對主機的存取的腳本。該腳本在任何人透過 ssh 連接到用戶後運行。
這是在user
的中實現的~/.ssh/authorized_keys
。
這是文件中顯示的行:
command="/home/user/script/that/was/causing/problems.sh", ssh-rsa ABC123hugepubliccipher==
刪除該command=
部分後,用戶可以再次透過 ssh 登入。