新用户authorized_keys:如何设置一个不要求旧密码?

当我使用Chef在系统中创build用户时,我总是将其公钥上传到.ssh/authorized_keys 。 当用户第一次login时,他需要“更改”他的密码。 为此,使用了一个存根密码,所以他可以input“当前”密码。 这是现在的样子:

 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密码? (更强调它,这是安全的,因为用户已经用他的公钥进行了validation)。

用户的密码可以通过以下方式删除:

 passwd -d <user> 

(作为根/与sudo)。

基于SSH密钥的身份validation将仍然有效,但不需要密码来设置新密码。 我刚刚在Ubuntu上testing了这个。

 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:~$ 

至于安全:我不明白为什么它应该是一个问题。 无论是否设置了密码,任何拥有私钥的人都将能够连接并造成伤害。 知道密码后,他们已经连接可能会使他们做更多的伤害,如果你的sudoersconfiguration是有点缺乏,但是这表明你有更大的安全问题无论如何在我看来。