SSH 在ssh-copy-id 之后仍需輸入密碼的問題


最近在使用Ansible,基於SSH。

遠程服務器IP: 

192.168.200.193

以下提及的遠程服務器都為該服務器。

遠程用戶:

ansible_user

在本地服務器中,ssh-keygen生成密鑰之后,將通過ssh-copi-id將生成的公鑰添加到遠程服務器:

ssh-copy-id ansible_user@192.168.200.193

然后登錄到遠程服務器,在/home/ansible/.ssh/authorized_keys文件中能夠看到本地服務器中生成公鑰。

然后在本地服務器中使用ssh遠程登錄:

ssh ansible_user@192.168.200.193

奇怪的是,仍然需要輸入密碼。但在遠程服務器上新建一個用戶,執行上面的步驟,卻能夠生效。

如果此時使用ansible執行一些操作的話還會得到如下錯誤:

192.168.200.193 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n",
    "unreachable": true
}

看樣子是權限的問題。

並且在/var/log/secure看到日志:

Authentication refused: bad ownership or modes for file /home/ansible_user/.ssh/authorized_keys

這時候觀察ansible_user家目錄的屬性發現確實有點異常:

drwx------  12    1001 ansible_user  4096 3月  20 14:11 ansible_user

從/etc/passwd文件中看到ansible_user的信息:

ansible_user:x:0:0::/home/ansible_user:/bin/bash

這里跟家目錄明顯不符,記起之前通過root用戶強行將ansible_user的uid改為了0。這也是導致家目錄所屬用戶是UID(1001),而不是用戶名的原因。

現在將/etc/passwd中的UID 0 改為1001即可。

 

當然出現該情況的還有一些其他原因,個人覺得這個是比較奇怪的原因之一。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM