简介
您是否正在使用iOS快捷方式应用程序?直到最近我才使用它...
但是,最近我开始感觉到与Rasberry Pi结合使用的无限可能性(*可以与其他设备一起使用),我想与我的画笔分享这种印象!
本文主要处理以下内容。
- SSH连接设置方法(iOS 13支持公钥认证)
-
运行任何脚本
- 简单的例子
- 运行在后台连续运行的程序
- 退出后台运行的程序
- 关闭/重启远程机器
我最近开始在这里工作,因此,如果您能对任何错误发表评论,我将不胜感激。
SSH连接设置方法(iOS 13支持公钥身份验证)
在iOS12之前,只能通过密码身份验证进行连接,但是从iOS13开始,支持公钥身份验证。连接方法非常简单。
1.在iPhone上操作:公钥共享
首先,启动快捷方式应用程序,然后从搜索字段中选择"通过SSH运行脚本"。
然后,将显示输入SSH连接设置的屏幕,如下所示。
主机,端口和用户应根据其环境进入。
身份验证方法默认为密码,但您可以选择SSH密钥。
选择
SSH密钥时,将显示以下屏幕。
首先,选择①" Generate new key",然后选择所需的类型和位长。
接下来,选择②"共享公共密钥"以显示公共密钥。选择最适合您的共享方式,例如通过电子邮件发送。
如果要连接到SSH的计算机尚未禁用密码身份验证,请将此处生成的公共密钥复制到剪贴板,使用密码连接SSH→将公共密钥添加到配置文件中,以此类推。我认为它可以操作。
此时,我已禁用了密码身份验证,因此我将iPhone的公钥通过电子邮件发送给另一台已通过公钥进行身份验证的PC,然后使用另一台PC添加了公钥。
2.在要连接到SSH的目标计算机上的操作
因为这里有很多文章,所以我将省略详细信息,仅列出链接。我想使用Rasberry Pi,所以请原谅我是这样。
主要来源;
https://www.raspberrypi.org/documentation/remote-access/ssh/passwordless.md
二级来源:
https://tool-lab.com/raspi-key-authentication-over-ssh/
这样就完成了连接设置。之后,我将编写脚本。我将用一个具体的例子来解释。
运行任何脚本
简单示例
首先,让我们执行一个简单的示例,获取在远程PC上运行的任务列表并将其显示在iPhone上。
您可以使用
执行此操作时,您应该在通知区域中看到在远程PC上运行的任务列表。
运行在后台连续运行的程序
以下示例。
如果程序连续运行,例如"启动服务器",则快捷方式应用程序将继续等待程序完成,并且操作不会完成。
即使避免了上述问题,即使在断开SSH连接后,也必须在远程PC侧继续该过程。
这次,我将描述在后台以后台方式执行程序
1 2 | cd ~/myapp nohup ./main >/dev/null 2>&1 & |
-
nohup :此命令允许您在SSH连接后继续处理 -
Last
& :这将在后台执行 -
>/dev/null 2>&1 :如果仅按上述方式执行nohup ./main & ,则可能由于显示了各种标准输出而导致操作未完成。因此,添加此命令以读取标准输出?错误。
通过上述处理,即使在SSH连接断开后,我们也可以在后台执行该处理并继续操作。
终止在后台运行的程序
嗯,能够在后台运行该进程真是太好了,但是问题是您无法杀死它。
在这种情况下,请执行以下脚本。 (将主要部分替换为您要完成的任务名称)
我指的是这里。
1 | ps aux | grep main | grep -v grep | awk '{print "kill -9", $2}' | sh |
关闭/重新启动远程计算机
顺便说一句,当使用Rasberry Pi等时,关闭机器是一件简单而麻烦的事情。
我每次都执行
即使在这种情况下,您也可以使用快捷方式应用程序
过程很简单,只需如上例中那样编写脚本,但是在sudo时必须输入密码,而使用快捷方式应用程序要花很多精力。
如果重新启动
1 | echo (毎回尋ねる) | sudo -S reboot 2>/dev/null |
-
您可以通过设置
sudo -S 从标准输出中接收密码。 -
因此,我运行
echo ,但是在某种程度上,我担心之后会以明文形式保存密码。因此,我决定使用快捷方式的"变量"功能,并每次都要求输入密码。
现在您可以通过触摸按钮来快捷或重新启动...!
结论
怎么样了?这次我根据实践案例介绍了一个示例,但是我认为根据组合情况,它可以用于其他各种案例。
欢迎将其用于此类事物的评论……!