2

我需要通过连接到服务器ssh并更改用户的密码,而无需键入sshsudo password

我找到了一些示例,但我无法完成一个命令。

我找到了这个用于 ssh 连接的命令,而无需输入密码并sudo为删除用户运行命令:

sshpass -p $admin_password ssh -t $admin@$server "echo $admin_password | sudo -S /usr/sbin/userdel -r $usr"

然后我找到了更改用户密码的命令:

echo "$usr:$password" | sudo -S /usr/sbin/chpasswd;

最后,我想要这样的东西:

sshpass -p $admin_password ssh -t $admin@$server "echo $admin_password | sudo -S echo "$usr:$password" | sudo -S /usr/sbin/chpasswd;"

你有什么想法?

4

1 回答 1

1

你的问题实际上需要两件事。远程更改用户密码的命令:

ssh remoteserver 'echo -e "passwdofuser\npasswdofuser" | passwd username'

为了做到这一点,您可能需要成为 root,或者在 sudo 配置中,让“passwd”不需要密码才能运行您的用户。

visudo

编辑文件:

Cmnd_Alias      MYPASSWD = /usr/bin/passwd
yourusername ALL = NOPASSWD: MYPASSWD

这应该允许您 ssh 进入,而不必使用密码来运行 passwd 命令。

于 2012-04-18T02:48:06.197 回答