如何通过 ssh 使用 sudo 运行远程脚本而无需输入密码

如何通过 ssh 使用 sudo 运行远程脚本而无需输入密码

我希望我的脚本使用密码连接到 ssh,连接后它将切换到sudo -s并运行mkdir命令

目前我设法连接到 ssh 而无需输入密码,但我无法通过用户切换来创建我的文件夹

好像:

root@computer:/home/user/test# sshpass -p 'password' ssh [email protected]  mkdir /var/volatile/flash-upgrade

mkdir: can't create directory '/var/volatile/flash-upgrade': Permission denied

只有root用户可以创建文件夹

答案1

例如,admin192.168.2.250 上的用户需要能够sudo连接到正确的用户,ssh sudo id或者您可以将 ssh 设置为允许 root 访问计算机的用户,因此。ssh [email protected]

如果您独自使用家庭网络,则两者都应该没问题;在企业环境中,您应该考虑安全影响。

答案2

您只能使用标记的 ssh 公钥认证来允许 root 访问:在 /etc/ssh/sshd_config 中, set PermitRootLogin forced-command-only Force-command 是您在 /root/.ssh/authorized_keys 中标记公钥的命令,例如 command="script_you_have_strictly_controlled" id-rsa <public key here> 这样您就可以控制提升到只执行授权和预定义的任务

相关内容