Login

具有authorized_keys的新使用者:設置時如何不詢問舊密碼?

  • January 15, 2012

當我使用 Chef 在系統中創建使用者時,我總是將其公鑰上傳到.ssh/authorized_keys. 當使用者第一次登錄時,他需要“更改”他的密碼。為此使用了存根密碼,因此他可以輸入“目前”密碼。這是它現在的樣子:

ssh user@host 
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user.
(current) UNIX password: 
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Connection to host closed.

目前密碼是眾所周知的(我會告訴你一個秘密initial:),無論如何這都沒用。如何避免current第一次詢問密碼?(更強調一點,它是安全的,因為使用者已經使用他的公鑰進行了身份驗證)。

可以通過以下方式刪除使用者密碼:

passwd -d <user> 

(作為 root / 使用 sudo)。

基於 SSH 密鑰的身份驗證仍然有效,但設置新密碼不需要密碼。我剛剛在 Ubuntu 上測試過這個。

tom@slappy:~▶ ssh foo@shell
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.35.4-rscloud x86_64)

* Documentation:  https://help.ubuntu.com/
Last login: Sun Jan 15 12:10:44 2012 from 12deee6f.bb.sky.com
foo@shell:~$ passwd
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
foo@shell:~$

至於安全性:我不明白為什麼這應該是一個問題。無論是否設置了密碼,任何擁有私鑰的人都將能夠連接並造成傷害。如果您的 sudoers 配置有點缺乏,一旦他們連接後知道密碼可能會使他們造成更大的傷害,但這表明您無論如何都存在更大的安全問題。

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