使用明文远程 sudo 到 root,然后运行命令

使用明文远程 sudo 到 root,然后运行命令

想要使用明文密码 ssh 到同一子网中的其他客户端服务器,然后 sudo 到 root 以关闭命令并重新启动。我故意不添加 ssh 密钥。我试过了

ssh -tt [username]@[host] "sudo su -; service snmpd stop; reboot ";

我如何在登录时传递用户名和 sudo 的密码?

答案1

笔记:这里提供的答案应该有效。但是,违反了最佳实践。该答案还假设该sshpass命令在将启动命令的主机上可用。用户注意到它将被使用一次,然后被删除。

sshpass -pPASSWORD ssh -tt [username]@[host] 'echo PASSWORD | sudo -S -s /bin/bash -c "service snmpd stop; reboot"'

至少,用户应该使用密钥交换进行 ssh 登录,并允许用户在没有密码的情况下通过 sudo 执行所需的命令。

答案2

尝试使用名为 sshpass 的程序来传递您的 ssh 密码。它可以这样使用:

SSHPASS='sshpassword'
remoterootpass='remoterootpass'

sshpass -e ssh user@host <'EOF'
su -
echo "$remoterootpass"
service snmpd stop
reboot
EOF

您还可以将远程命令放入 shell 脚本中并按如下方式调用:

SSHPASS='sshpassword'
cat myscript.sh | sshpass -e ssh user@host

相关内容