我需要通过ssh
连接到服务器并更改用户密码,而无需输入ssh
或sudo 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;"
你有什么想法吗?
答案 0 :(得分:1)
你的问题实际上需要两件事。用于远程更改用户密码的命令:
ssh remoteserver 'echo -e "passwdofuser\npasswdofuser" | passwd username'
为了做到这一点,你可能需要是root用户,或者在sudo配置中,“passwd”不需要密码供你的用户运行。
visudo
编辑文件:
Cmnd_Alias MYPASSWD = /usr/bin/passwd
yourusername ALL = NOPASSWD: MYPASSWD
这应该允许你ssh in而不必使用密码来运行passwd命令。