スマホからSSH 

# はじめに
~ SSH connection from your Smart phone ~
スマホからサーバーコンソール、またはラズパイのようなデバイスへのSSH、思ってるより使えるよ！しかもremote.itでインターネット越しにつないじゃおうという記事です。

# やりたいこと
AndroidまたはiPhoneを小さいながらもSSHコンソールとして使ってみたいと思います。remote.itを経由すれば携帯電波網でも、しかもポートフォワーディング無しでリモートホストに接続できます。
キーボード／マウスをつなぐとなお一層使いやすいですね。Androidならテキトーなキーボード・マウスでも認識するのでハードルは低くかなり使える環境になります。


![SSHfromSmartPhone.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/405bda8e-7ee1-8b54-2c63-90b600fb8966.png)


# おすすめSSHクライアント
まずはスマホにSSHクライアントをインストールしましょう。個人的おすすめアプリ（2022/1現在）は以下の通り。

- Androidのおすすめ：「**JuiceSSH**」

https://play.google.com/store/apps/details?id=com.sonelli.juicessh&hl=ja&gl=US

- iPhoneのおすすめ：「**ShellFish**」

https://apps.apple.com/jp/app/secure-shellfish-ssh-sftp/id1336634154


# remote.it のセットアップ（接続先・サーバー側）
リモート環境に接続するにはremote.itが必要です。
まずは接続したい装置側にremote.itをセットアップしましょう。ここでは詳細は省略しますが参考になる記事をいくつかリンクします。

https://qiita.com/mskairmail/items/25f985927beb5d3f1b04

https://qiita.com/mskairmail/items/8025ba8eee3a4408c521



# remote.it mobileアプリケーションのインストール（接続元・スマホ側）
同じく手元のスマホにもremote.itをインストールするとSSHクライアントと自動連携して（カスタムURLスキーム）快適に接続できます。
Google Play/App Store で "remote.it" を検索してみてください！念のために以下にリンクを。

- Android - **Google Play "remote.it"**

https://play.google.com/store/apps/details?id=com.remoteit&hl=ja&gl=US

- iPhone - **App Store "remote.it"**

https://apps.apple.com/jp/app/remote-it/id1437569166


# スマホにキーボード・マウスを接続
### Androidの場合
Androidは割とどんなキーボード・マウスでも認識するようです。試しに手元にあった無線キーボードタッチパッド付き（非Bluetooth）を接続してみました。こんなかんじ。特に設定はせずともキーボード・マウス共反応しました。

![Androd_SSH_01.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/b57e4276-2231-1649-df67-dd46d972a2af.jpeg)

IMEがGboardの場合 [Shift]+[Space] で日本語／英語入力を切り替えられます。少し癖があって2回押さないと切り替わらないことがあります。
下の写真のこの赤丸部分に「あ」の表示が現れたり消えたりするので見分けられます。（ガラスフィルムがバキバキですみません）

![Androd_SSH_02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/a462bc55-3ac2-b236-10c4-d292b3b2d62e.jpeg)


### iphoneの場合

手元にあったBluetoothキーボードとマウスを接続してみました。マウスの接続は少し癖があります。ここでは割愛しますがアクセシビリティ設定あたりを操作します。

![iphone_SSH_01.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/5689f74a-923d-92f2-c14c-e154d54fd90a.jpeg)

 [Ctrl]+[Space] で日本語／英語入力を切り替えられます。macと同じなのでわかりやすいですね。

![iphone_SSH_02.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/f8a7997c-cb38-3fcd-dab0-d60cf4201f69.jpeg)


# リモートホストにremoteitしてSSHを開始する
いよいよ接続の手順です。Androidもiphoneも手順はさほど変わらないのでここではiphoneを例に説明します。

スマホからremote.itのアプリケーションを起動し、下部「Devices」タブから接続したいデバイス（ターゲット）の一覧を表示します。
ここでは「develop_JPN_04」というラズパイに接続してみます。

![スクリーンショット 2022-02-01 20.03.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/f598c8d8-4906-ef52-02b3-3e95ae62b47a.png)

上記画面遷移のように、ターゲットのSSHサービス詳細画面まで移動したら起動アプリケーション設定（Launch default）にオススメの「ShellFish」を設定し「Connect」ボタンをタップします。

![スクリーンショット 2022-02-01 20.16.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/af8460c1-8fee-c2ba-e3c3-a3e22a1baba3.png)

接続が完了する上記画面に遷移、外部アプリ呼び出し（URLスキーム）ボタン「↗」をタップすると…　ラズパイのSSHコンソールに繋がりました！なれると意外と快適に操作できると思います。
終了時はexitしてremoteitモバイルアプリまで戻り…

![スクリーンショット 2022-02-01 20.21.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/9c9af2d4-454b-3690-5158-3880cc9e3903.png)

「Close Connection」をタップして接続を終了します。


# まとめ

スマートフォンは常に持っているのでちょっとした作業ぐらいであれば軽くてどこでも使えて便利ということがわかりました。
とはいえ小さいよ…　という方は、iPadがいいかもですね。

![スクリーンショット 2022-02-01 20.28.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/f3e1023d-61b7-f74c-05b6-8a2b7c08cc4f.png)


:::note info
2022.2.22 以下追記
:::

とても似ていますが「スマホからVNC / リモートデスクトップ RDP」する手順をまとめました。よろしければ下記も合わせてご参照ください。

https://qiita.com/mskairmail/items/db047b54f3756501c155