iPhone の「ショートカット」機能を使って、「Raspberry Pi OS(Linux)」に鍵認証SSH 接続を試みる。
iOS 標準アプリ「ショートカット」でSSHキー(暗号鍵)を使い SSH 接続する。
iPhone の「ショートカット」とは。
気が付いたら iOS に追加されていたアプリで、iPhone 内のApp でバッチ処理をするようなイメージの機能です。
例えば、「タイマーを起動して3分セットする。」
といったような処理を作成できます。
![](https://zapping.beccou.com/wp-content/uploads/2021/09/image-71.jpg)
皆さんはカップラーメンを作る時にiPhone の時計アプリを使って3分計っていると思いますが、
その工程を思い出してみてください。
誰でも以下のような工程になると思います。
- 「時計アプリ」を起動する。
- 「タイマー機能」を選択。
- 「3分」セットする。
- スタート。
正直、面倒くさいですよね?
「ショートカット」は、この4つの処理を登録しておき、ワンタップで呼び出せるようにする機能です。
つまり、ラーメンタイマーボタンを作ることが可能なのです。
【iPhone → Raspberry Pi】 パスワードでSSH 接続する。
SSH 経由でスクリプトを実行
この便利なショートカット機能「スクリプティング」内にSSH 接続があります。
このショートカット機能には、ラーメンタイマーを作るだけでなく、
「SSH 接続をして何々を実行する。」という操作も登録できます。
それが「SSH 経由でスクリプトを実行」という操作です。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-108.png)
呼び出し方。
![](https://zapping.beccou.com/wp-content/uploads/2021/09/image-75.png)
ショートカットApp を開いて、「✙」ボタンをタップ。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-75.png)
アクションを追加をタップ。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-77.png)
スクリプティング をタップ。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-78.png)
SSH 経由でスクリプトを実行をタップ。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-79.png)
「表示を増やす」をタップ。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-80.png)
SSH 接続の設定と、実行するスクリプトが書けます。
画面下の (再生アイコン)をタップすると、テスト実行できます。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-81.png)
設定内容について。
ホスト:SSH 接続する端末のIP アドレス等を入力。
ポート:SSH 接続に使用するポート
ユーザー:SSH 接続するユーザー
認証:パスワード or SSH キー
パスワード:認証がパスワードならパスワードを入力。SSH キーならキーの種類が表示されます。
入力:実行するスクリプトを入力します。
Raspberry Pi にパスワードでSSH 接続してみる。
パスワードで接続するだけなら、SSH 接続できる環境があれば簡単に試せると思います。
この例ではSSH 接続して、「ls」コマンドを実行しています。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-82.png)
こんな感じにレスポンスが来ます。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-83.png)
【iPhone → Raspberry Pi】鍵認証SSH 接続する。
iPhone 公開鍵の登録手順について
次にSSH キーを使った鍵認証SSH 接続を試してみたいと思います。
通常の鍵認証SSH 接続と設定方法は同じはずなので、
iPhone の公開鍵を接続先のコンピューターに登録してやればいいと思います。
iPhone の公開鍵を共有する手段が メールとかLine とかのアプリなので、
メールなどで一旦パソコン端末に送信し、その端末からSSH 接続先の端末へ、
Authorized keys を登録するという流れで進めます。
イメージ図
![](https://zapping.beccou.com/wp-content/uploads/2021/09/image-73.png)
公開鍵の共有
認証を「SSHキー」に切り替えて、その下のSSH キー名をタップします。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-84.png)
SSH キーの項目から、「公開鍵を共有」をタップ。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-85.png)
共有方法の候補から、メールを選択。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-86-594x1024.jpg)
公開鍵をメールで任意のアドレスへ送信します。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-86.png)
Raspberry Pi OS への登録
空のテキストファイルを作成し、受信したメールの本文をコピペで貼り付け、
適当な名前で適当な場所に保存します。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-87.png)
iPhone の公開鍵を再現したので、
- 作成したファイルを
- SSH 接続先ユーザーホームディレクトリの.ssh フォルダ内に
- 「authorized_keys」として登録
とすれば良いのですが
Linux であれば「ssh-copy-id」コマンドを使って登録すると、上記の作業を全部やってくれます。
Windows の場合は、OpenSSH に「ssh-copy-id」が無いので、代替コマンド無いかなーっとダメ元でググってみたらよい情報が見つかりました。(というか、一発ヒットでした。)
という訳で、下記のように登録するとクール。
例:
cat iphone_pubkey.txt | ssh uniuni@192.168.3.11 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
分解するとこんな感じで、複数の制御を一回のセッションで終わらせています。
cat <作成したファイル>
| (パイプ)
ssh <ユーザー名>@<ホスト名>
(↓ ダブルクォーテーションの内容を投げる)
"mkdir -p ~/.ssh
&& (AND制御演算子:実行されたら次へ...)
chmod 700 ~/.ssh
&& (AND制御演算子)
cat >> ~/.ssh/authorized_keys
&& (AND制御演算子)
chmod 600 ~/.ssh/authorized_keys"
但し、使えるのは「登録先がLinux の場合」です。
登録先が Windows だとSSH 接続後にシェルが「コマンドプロンプト」になる為、コマンドが見つからずエラーになります。
その場合は、コマンドプロンプトに合わせたコマンドを使うか、直接Windows を操作してauthorized_keys を作成してもOK です。
![](https://zapping.beccou.com/wp-content/uploads/2022/04/image-295.png)
実行すると、フィンガープリントの件が来て、パスワードを聞かれます。
パスワードを入力すると、登録完了です。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-88.png)
参考:
Raspberry Pi の方を確認すると、キーが登録されているのが確認できます。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-90-1024x646.png)
鍵認証接続の動作確認
SSH キーで認証(接続)できて、正常なレスポンスが返ってきました。
![](https://zapping.beccou.com/wp-content/uploads/2021/08/image-91.png)
以上です。
ピンバック: インターネット経由でWOL する。「プランB」 - .zapping
ピンバック: Windows で SSH 接続する時のまとめ。Windows 10、Windows Server 2016、2019 - .zapping