我想在 ssh 服务器上运行一个命令,但这个命令由我本地机器上的脚本决定。我该怎么做?
为了清晰起见,举个例子:
我想在这里写一个脚本(foo.sh) 带有一个参数。如果我运行它,./foo.sh 0
它应该以某种方式向服务器计算机发送关闭信号,但如果我运行它,./foo.sh 1
它应该发送重启信号。
我知道如何通过 ssh 手动登录,并且我已经设置 ssh-keys 来跳过密码,但我不知道如何使用脚本自动执行该过程。
答案1
答案2
正如 Oli 所评论的,您可以告诉 SSH 发送命令。您可以修改脚本,以便如果您的命令行参数是 1,它会发送ssh user@server "shutdown -h now"
。请记住,您必须是另一台机器的超级用户才能关闭它。
编辑:不要使用 root,正如 sudoers 文件中的注释所建议的那样,user
这样就可以无需密码关闭机器。
答案3
您可以使用运行:
sudo apt install runoverssh
runoverssh -n -s localscript.sh user host
-n
将使用 SSH 默认身份验证(您的密钥)
-s
远程运行本地脚本