用 iPhone 一键重启、关闭电脑

本文转载自36kr

下班时用手机来关电脑,你就是办公室里最酷的人。

在生活中的一些场景,可能需要使用 iPhone 控制 Mac 的电源。例如在上床后,需要关闭电脑电源,或者是使电脑熄灭屏幕。其实,在少数派上早有文章可以实现这些功能,但是配置较为复杂。例如下面的这两篇文章。 

《把你的 iOS 设备变成控制 Mac 的「遥控器」》

《无需第三方 App,同样可以把你的 iOS 设备变成 Mac「遥控器」》

但是本文仅使用捷径,就可以很简单地实现这些功能。接下来就随着文章,来看看如何使用捷径,控制电脑执行重启、注销和关机等操作。读完本文后,可以学到以下知识点: 

  1. 如何开启远程登录 Mac

  2. 捷径 SSH 模块的使用

  3. SSH 公钥的使用方法

  4. RSA 加密的实际运用

Mac 配置

为了实现局域网内的控制,首先需要开启 macOS 的 ssh 访问功能。前往「系统偏好设置」>「共享」,勾选「远程登录」,打开 ssh 远程登录功能。 

点击上方的「编辑...」,编辑局域网内电脑的名称,例如此处的 james,最后点击「好」保存设置。 

此时,如果要在局域网内访问电脑,只需要访问 james.local 即可。这样做的好处是,即使电脑切换到其他网络下,Mac 在局域网内 IP 地址发生改变,也依旧可以通过主机名访问。 

最后,可以通过 ssh 命令确认开启状态。打开终端,输入「ssh 主机名」连接本机,例如图中的「ssh james.local」,如果正常就会询问密钥指纹是否正确。反之,如果 ssh 服务没有正常工作,就会像第二条命令一样显示「Connection refused」。 

捷径构建

接下来,就要使用构建捷径来实现功能。新建捷径,搜索 ssh 模块,选择「通过 SSH 运行脚本」添加模块,可以看到该模块要求输入以下参数:主机、用户、认证方式、密码和命令。 

在上一步,已经设置好的主机名即为主机参数。用户和密码对应着电脑的用户密码,不必多说。最重要的是 该执行什么命令。所以特在此整理了一份命令速查表,读者可以根据需要复制相应的命令。 

这个表格有两个地方需要补充说明,首先是「唤醒电脑」功能。该功能需要在局域网内有一台其他设备,例如树莓派。捷径实际上是发送 wakeonlan 给树莓派。树莓派再通过 WOL 协议唤醒 Mac,而不是直接将命令发给 Mac,这一点请切记。 

其次,还要注意的是 shutdown 命令属于系统级命令,需要超级用户权限才能执行。如果在终端里直接执行该命令,会有如下的报错,而且也无法关闭电脑。因为目前登录的是用户,而不是超级用户。 

为了能够正常执行该命令,需要在前面加上 sudo,以此表示使用超级用户权限执行命令。 

在命令前面添加 sudo 之后,会要求输入用户的密码进行确认,密码输入正确之后即可关机。但是这时候要注意到一个问题,捷径是没有办法与电脑交互的,更别提输入密码了。sudo 命令的作者 Robert Coggeshall 显然也考虑到了这个问题,所以提供了一个 -S 的参数,该参数可以接收管道传来的字符串,作为密码进行确认,无需手动输入密码。 

所以加上 -S 参数后的关机命令是如下,此处的「密码」需要更换成读者的电脑密码。 

echo 密码|sudo -S shutdown -h now

命令构建完成之后,就可以开始填写捷径参数了。如下图所示,可以看出用户名是 james,密码是 123456(当然是假的了)。保存该捷径,命名为关机,通过喊一句「heySiri, 关机」即可关闭电脑电源。当然,这里的关机只是一个演示功能,对于 macOS 用户来说,更常见的电源操作应该是:pmset sleepnow(电脑休眠)。 

但是细心的读者可能也注意到了,此处的密码是明文保存,非常不安全。此处需要特别说明的是,密码区域的 123456 之所以是明文,这是因为作者使用的是 iOS 15 测试版,在 iOS 14 上它应该是 6 个小黑点。但是即使是这样,命令区域输入的密码依旧是不安全的明文,安全性有待提高。所以在实现基本功能之后,就可以来完善它的安全性了。 

更换密钥验证

在上一步,作者使用密码作为验证访问 Mac。但是这样做,轻则暴露密码长度,重则直接暴露密码,所以可以考虑使用密钥验证。点击「认证」选择「SSH 密钥」,捷径就会生成 SSH 密钥以供使用。 

从上图右边可以看出,这个密钥的类型是 ed25519。如果想要其他类型的密钥,可以点击下面的「生成新密钥」进行选择,作者在此处选择了 2048 位的 RSA 密钥。读者可以根据自己的偏好选择,无论是 ed25519 还是 RSA 方法都是一样的。 

生成 SSH 密钥后,就要在电脑上配置密钥。点击「共享公共密钥」,将密钥文本导出,将密钥发送到电脑上。 

通过 Finder 的快捷键 shift+command+G,前往 ~/.ssh 文件夹。 

新建名为 authorized_keys 的文件,粘贴密钥,将文件保存到 ~/.ssh 路径之下。这样配置之后,就可以无需密码,直接通过公钥访问 Mac。此处的图形界面操作是为新手考虑而写,有 命令行基础的用户,请直接使用下面这条命令追加公钥。

pbpaste >> ~/.ssh/authorized_keys

▍密码加密传输

在解决完了密钥验证问题之后,还剩下命令里的明文密码要解决。这时候可以请出大名鼎鼎的 RSA 非对称加密算法了。非对称加密需要公钥,私钥一对。顾名思义,公钥是可以公开传播的,而私钥就是要私藏好的。公钥可以用于加密,却无法解密,只有使用私钥才可以解密。所以只要妥善保管私钥,那么整个加密体系就是安全的。 

接下来,就来看看 RSA 加密的实际应用。首先需要生成一对公私钥,它将被用以加解密文本,命令如下: 

# 生成私钥openssl genrsa -out ~/.ssh/PrivateKey.pem 2048# 生成公钥openssl rsa -in ~/.ssh/PrivateKey.pem -pubout > ~/.ssh/PublicKey.pub

将密码进行加密并编码,echo 后面跟随的内容即为密码,例如此处的 123456,请将此处的 123456 替换为读者自己的电脑密码。 

但是可以看出,经过加密之后的 123456 变成了一串乱码,这是因为 RSA 加密的结果是二进制流,而非普通的可打印字符,那么这还怎么使用?这时候,就可以请出 base64 编码了,它可以将任何信息流都转换为特定字符集内的编码。 

此处的 O7O...Q== 即为密码加密编码之后的结果。如果需要验证是否正确,可以进行解密验证。可以看出,成功解密出了 123456 的密码明文。 

接下来,只需要把原来命令里的 echo 123456 替换成加密后的 base64,即可实现密码的加密。替换之后的命令如下图所示。 

该命令由 4 个小命令组成,由 |(管道符)进行连接。首先使用 echo 输出 base64 编码,通过 base64 -d 解码出二进制流,传递给 openssl 命令解密出明文。最后将明文作为参数,传递给 sudo 命令作为密码使用,执行立即关机的命令。 

文章总结

本文以远程关机为例,教学如何使用捷径通过 SSH 对电脑电源进行操作。在作者的日常生活中,其实更多的是配合其他模块共同使用,作者的捷径里有一个名为「离开模式」的捷径,它的功能是关闭屏幕挂灯和电脑休眠。在作者需要出门的时候,手上在整理出门要带的东西,嘴上就可以直接喊:「heySiri,离开模式」。东西收拾好之后,也就可以直接离开了,免去了手动休眠和关闭挂灯的步骤。当然这还是比较简化的描述,以后可能会专门在写一篇文章,来介绍这个捷径的制作过程。 

另外,SSH 能够做到的绝不止本文所提的电源控制,还可以是音量的加减,打开网页,打开软件等。本文以电源控制为例,只是举了一个常用的场景。本文抛砖引玉,希望读者能够结合自己的生活场景举一反三,做出一些更适合自己的捷径。 

免责声明 版权属于个人属有!不得转让(转借.复制.等等...)他人! 如有一切法律责任与本人无关! ============================================================ ============================================================ 使用步骤: 第一步:点击【先注册动态链接控件再运行软件.bat】但注意整个文件必须放 在桌面上进行 或者把【动态链接文件】中的9个文件复制在C:\WINDOWS\system32下。 (只复制9个文件,不要把文件夹一起复制!!!非常重要! ) 第二步:如不能正常使用请重启电脑,其他文件请不要删除,移动!否则不能使用! ============================================================ [共享版使用15分钟后会自动退出! 如果你确定想完全使用请与我联系!] QQ:602794951 ============================================================欢迎使用! 说明: 1:alt+ctrl+F12 唤醒隐藏。 2:鼠标右键选择皮肤。 3:液晶屏幕关闭后,移动鼠标或者空格键开启液晶显示器。 4:双击键面也可以隐藏。 5:esc键初始化窗体位置。 6:关闭液晶显示器但电脑任然在工作,网络也不会断。 有些杀毒软件会提示!因为此程序应用了一些钩子!但绝对无马无毒! 功能简介: 1:【网速流量关机】一般用于晚上下载所用,因为晚上人少 有时候出现到了晚上下载流量特别低。可以 根据自己的网速来调整XXX分钟XXXKB。 2:【系统指定关机】这个就不用说了,但要说的是如果你在晚上12点之前设定的 时间是晚上12点过后倒计时会出现错误,但不影响关机(一点小瑕疵)。 3:【系统延迟关机】也就是从现在推迟多长时间关机。(可以根据自己的情况设定) 4:【鼠标空闲关机】如果鼠标不动多长时间就关机(可以根据自己的情况设定) 5:【系统空闲关屏】也就是鼠标不动多长时间关闭电脑屏幕(液晶有效,其他不知道) 关闭屏幕可以延迟显示器的寿命,这个很不错。(关闭后显示器一点温度都没有如果要 唤醒按空格键和鼠标,可以和其他的功能配合使用,可以延长显示器X年) 6: 【cpu关机】如果看电影电视的时候睡着了,他可以帮助关机一般的播放器cpu使用都在 30%左右,一但播放完CPU就会低下了。当然根据你的设置的量就关机了。 7:【内存】有三个功能,当你的内存大于设定的时候会提醒你。很多电脑都是内存使用 太大导致死机或崩溃。(很不错的)。 8: 【锁定屏幕】必须输入密码(初始密码为:123456)。(1):(延时)打上勾,输入 时间就可以了。 (2)也可以按下(锁定鼠标)键,直接使用。 此锁屏功能是目前较为强大的锁屏工具!! 友情提示:请一定记好保存的密码!!! ===========================还有一些功能自己慢慢用吧...============= 手机关机: 1:在电脑上登录一个QQ。在[系统设置]->[好友和聊天]->[常规]-> [允许来消息时自动弹出窗口]打钩 2:输入远程QQ昵称 3:用手机上的QQ发任意信息电脑上的QQ即可.." 赶快使用吧! ================================================================== 版权属于个人属有!不得转让(转借.复制.等等...)他人! 如有一切法律责任与本人无关! XP专业版完全通过,其他版本没有测试过!!! 因为技术有限,时间有限,经济有限, 就不再更改了! 作者:杨玉祥&许鹏娟 大理 祥云
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值