Login
具有authorized_keys的新使用者:設置時如何不詢問舊密碼?
當我使用 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 配置有點缺乏,一旦他們連接後知道密碼可能會使他們造成更大的傷害,但這表明您無論如何都存在更大的安全問題。