有意義なサイト作りのためJavaScriptを使ってます。ご了承ください。

SiriショートカットとラズパイでSSHでスクリプト送ったりしてみた

 ·   ·  ☕ 4 分で読めます

ことの始まりはWindowsが最近のアップデートでSSHサーバーになれると知ったことでした。
これを利用すればたとえばPythonプログラムをSiriショートカットで発動して「Hey,Siri Unityつけて!」でUnity起動とかできるんじゃねと思ったのです。
早速調べました。

できました
夢しかないので早速やってみました…みましたが、SSHサーバーが安定しないわスクリプト実行ができないわで苦難の道のりでした。
ですがなんとかできるようになったので、方法をシェアします。裏技感マシマシの内容なのでアプデでできなくなったらどうしよう

自動化の勉強やアイデア

まずは自動化の勉強やらアイデアを収集しました。
いろいろ調べたところ、やっぱりPythonが簡単に書けていいよーとの情報を得たのでそれでいくことに。

ついでにiPadにPythonistaも落としましたが、アプリが落ちまくって不安定。アップデート待ちですね。

過程

まずはSiriでのSSHコマンドをWindowsで受け取れるようにSSHサーバーを構築します…が、上述の通り全然安定せず。
が、その後別のサイトを見て再び挑戦したところ、いけました

上サイト様の情報で成功。ありがとうございます…!
sshd_config設定も書いておきます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# ポート番号
Port (自分が指定したポート番号を入力)

# ログレベル
LogLevel VERBOSE

# rootユーザのログインを禁止
PermitRootLogin no

# パスワード認証を無効
PasswordAuthentication no

# チャレンジ/レスポンス認証を無効
ChallengeResponseAuthentication no

# 空パスワードを無効
PermitEmptyPasswords no

# 公開鍵のパスを指定
# (user_name) はご自身のものに変更
AuthorizedKeysFile C:\Users\(user_name)\.ssh\authorized_keys

# 15秒ごとに応答確認
ClientAliveInterval 15

成功の鍵となったコマンドはこちら。

1
netsh advfirewall firewall add rule name="sshd" dir=in action=allow protocol=TCP localport=xxxxx

あとは上サイト様の設定でなんとかなります。ルーターのポート開放やファイアウォール設定も忘れずに行いましょう。

Pythonをインストール

無難にAnacondaをインストールしました。

最初環境変数PATHを設定し忘れてしまい、PowerShellで動かないよーとなりましたが、設定で解決。よかった。

テストコード

1
print('Hello Python!')

あっけなく成功しました。Python、ほんとに死ぬほど書きやすいですね。私の中でUnity・C#との2強になりました。

遠隔スリープやってみる

いよいよ遠隔スリープに挑戦します。
WindowsはSSHなしでも遠隔シャットダウンはできるのですが、困ったことに完全にシャットダウンしてしまうとWOLできなくなってしまいます。
なので遠隔スリープが必要なんです。

最初Rubyも落としてみましたがVS Codeとの相性が悪く頓挫。
hibernate.exeをありがたく拝借し、右クリック=>プロパティ=>セキュリティ許可で実行可能に。
Pythonで実行コードを書きます。

1
2
import subprocess
subprocess.Popen(r"C:\EtcSoft\hibernate.exe")

いろいろ遠隔起動を試します。格闘の末成功パターンを見つけたのでシェア。

荒技:タスクスケジューラ

結論はタスクスケジューラに登録してコマンド発火させる荒技でした。

タスクスケジューラを開き、「設定時刻を過去にして1回だけ」実行するようにしてタスクを登録。スクリプトを直接実行プログラム指定でいけました。
気になる人はあとで実行トリガーを消してしまっても大丈夫です。

そしてSSHでコマンドを送ります。

1
schtasks /run /tn hibernate

見事パソコンが遠隔スリープ。任意スクリプトをSSH実行成功です。
これでもうなんだってできます。コードとアイデアさえあれば嫁召喚からGUI操作まで「Hey,Siri!」でお手の物。
はじめて技術者っぽいことの開拓をしました。学生時代に戻ったみたいです。やったー!

おまけ…Alexaだともっと楽

ここまで書いといてなんですが、Alexaならこんな裏技じみた方法でなくてもいけます。

EventGhostとMQTTの応用です。うちにFire 8があるので試してみましたが、あっさりできました。
「iPhoneよりAndroid派だよー」「iPad持ってないよー」「故郷をAppleに焼かれた」という方はぜひ!

追記…今ならこちらが有用です

remote2を使う方法です。インストールでエラーが出たら2番めのサイト様を参考になさってください。

まとめ…Siri最強伝説

いやー、まさかSiriとWindowsがこんなゴールデンコンビだとは思いませんでした。あんたら意外に仲良かったのねうふふ。
今iMacを再び使っているのですが、こっちからもSiriでSSHできないか模索してみます。
かなり上級者向けの内容になってしまいましたが、「リモートデスクトップ極めたい」「スクリプトなら書けるぞ!」という方は挑戦してみてください。
そして「こんなスクリプトできたよー!」というのがあったらどしどし教えてください。土下座します。
共にWindows・iPadハックを極めましょう!

シェアはこちら:

ふらもん
書いた人:
ふらもん
ゲームクリエイター見習い