试图使用Mac计算机远程关闭同一局域网上的Ubuntu计算机。如果我在mac上打开终端,我可以使用: ssh testbox@12.34.56.78关闭Ubuntu,然后输入密码,然后输入sudo poweroff,再输入密码。这确实管用。
问题是我需要使用来完成这个任务。(因此我可以创建一个Calendar事件,并在备份完成后的某个特定时间运行它)
注意:我已经成功地创建了一个Applescript,Wakeonlan可以在一天中的特定时间打开Ubuntu:
tell application "Terminal"
set currentTab to do script
("ssh testbox@192.168.1.12;")
delay 6
--//password
do script ("~/bin/wakeonlan 00:11.22.33.44.55")
end tell这很好,发送wakeonlan并启动Ubuntu,但是我不知道如何做同样的事情来关闭Ubuntu计算机?我什么都试过了吗?我发现的所有帖子只展示了如何在Ubuntu终端,而不是从Mac AppleScript放在Mac终端?
发布于 2020-09-12 15:26:36
如果你要尝试通过苹果脚本来完成这一切,那么“猫”的评论就显得恰到好处:你需要一个苹果论坛。
但在我看来,你真正的问题是如何避免在密码问题上受到挑战。而ssh拷贝id正是为此目的而发明的。如果你愿意尝试一下.
目标Ubuntu主机上的
为此目的创建一个专用用户
sudo adduser --force-badname SandMan
接下来,编辑/etc/sudoers以允许SandMan执行"sudo /sbin/关机.“没有异议。
sudo visudo
(默认情况下,这会以编辑器的形式打开"nano“-您将不得不自己处理;我将所有的代码都改为vi)。在includedir指令末尾插入以下内容:
%SandMan ALL=NOPASSWD: /sbin/shutdown
保存文件
现在,您应该能够使用SandMan用户登录到您的主机并执行sudo /sbin/shutdown --help,而不需要询问密码。
若要允许直接从MAC终端窗口执行关机,请尝试(从MAC终端):
ssh-keygen -t rsa -b 2048 -f ~/.ssh/SandMan_rsa
ssh-copy-id -i ~/.ssh/SandMan_rsa SandMan@12.34.56.78这是一个很好的Ubuntu20.04语法,但我不确定这是否能在不调整的情况下在MAC上工作。但是,如果它确实工作,那么您应该能够关闭您的目标从MAC终端:
ssh -i ~/.ssh/SandMan_rsa SandMan@12.34.56.78 /sbin/shutdown -h now
发布于 2020-09-13 22:12:45
我终于想出来了。以下是起作用的原因:
tell application "Terminal"
activate
do script ("ssh testbox@192.168.1.10")
delay 6
do script "password" in front window
delay 7
do script "sudo poweroft” in front window
delay 5
do script "password" in front window
end tellhttps://askubuntu.com/questions/1273947
复制相似问题