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

  • 70
    点赞
  • 310
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
### 回答1: 要将iPhone投屏到Windows电脑,您可以使用AirPlay功能。首先,确保您的Windows电脑iPhone都连接到同一个Wi-Fi网络。然后,在Windows电脑上安装AirServer或LonelyScreen等AirPlay接收器应用程序。接下来,在iPhone上打开控制中心,点击屏幕镜像,选择您的Windows电脑名称并连接。这样,您就可以将iPhone屏幕投射到Windows电脑上了。 ### 回答2: iPhone投屏到Windows电脑,可以说是数据传输的一项常见需求。以下是具体步骤: 1. 确保你的iPhone和Windows电脑连接于同一个Wi-Fi网络下; 2. 在Windows电脑上下载并安装“LonelyScreen”应用程序,或者使用iOS自带的AirPlay功能(需要Windows电脑运行iTunes); 3. 打开LonelyScreen应用程序或者iTunes,在Windows电脑上启用AirPlay功能; 4. 在iPhone上滑出控制中心,点击“屏幕镜像”,然后选择Windows电脑(LonelyScreen应用程序或iTunes)。 在完成以上步骤后,你就可以将iPhone的屏幕镜像投射到Windows电脑上了。这种方法可以使你在大屏幕上观看iPhone上的视频、玩游戏、浏览相册以及进行演示等内容,非常方便。但需要注意的是,这种方法需要确保Wi-Fi信号稳定,否则会造成屏幕镜像卡顿、延迟等问题,影响使用体验。 ### 回答3: 最近,越来越多的人希望将他们的iPhone的画面投射到Windows电脑上,使得他们可以更加方便地在电脑上实现iPhone的相关操作。幸运的是,现在已经有很多种方法可以实现这个目标。 首先,你可以使用AirPlay选项来实现iPhone投屏到Windows电脑。要使用此选项,您需要安装一些特殊的软件,比如AirServer或者LonelyScreen。这两个软件可以将您的Windows电脑转换成一个AirPlay接收器,然后您就可以通过AirPlay选项将您的iPhone连接到Windows电脑上。一旦建立了连接,您就可以享受您的iPhone画面在大屏幕上的效果了。 如果您不想安装额外的软件,也可以直接通过USB连接将您的iPhone和Windows电脑连接起来,然后选择“镜像画面”选项即可在您的Windows电脑上看到您的iPhone屏幕了。这种方法不仅方便,也可以避免音频和视频的同步问题。 总体而言,在将iPhone投屏到Windows电脑上这个问题上,使用AirPlay选项可能是最受欢迎的方法之一。当您通过AirPlay将iPhone和Windows电脑连接在一起后,您不仅可以看到您的iPhone画面,还可以在Windows电脑上控制您的iPhone,比如打电话、发送短信等等。这种方法对于那些希望在大屏幕上享受iPhone的所有功能的用户来说,是一个较为不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值