TERMIUS(SSHクライアント)を使う

以前使っていたSSHクライアントRove Mobile Admin Clientというアプリが、iOS11.xにアップデートで不具合が発生するようになってしまいました。具体的には、SSHでログインできるものの、ソフトウェアキーボードで入力をした途端に画面がブラックアウトしてしまう(ログイン自体は継続されている)のです。
画面をスクロールさせても入力した文字は現れませんし、そもそもプロンプトすら表示されない状態で、さすがにこれでは使い物になりません。
そこで重い腰を上げて新しいSSHクライアントを探すことに。

困った時のGoogle先生に尋ねたところ、Termiusというアプリの無料版がなかなかの高評価なもよう。実際に少し触ってみましたが、設定に若干戸惑ったものの、SSHクライアントとしては十分でした。
そこで以下、僕のiPhone5SにTermiusをインストールして実際にうちのサーバにSSHでログインするところまでの手順をまとめておくことに。手順をまとめておけば、もしTermiusを再インストールしなければならなくなったり、端末を変えたりしても後で参照できますものね!(笑)

さて、TermiusのiPhone5SへのインストールはApp Storeから簡単に行えるので割愛するとして、早速起動してみます。

最初に起動すると、まずはホストの登録するように促されます。矢印が指している「+」をタップすると追加登録する項目が選択できるので、「New Host」をタップして接続先を登録します。

上段にあるのは接続先を選択する際の識別子、要するにわかりやすい名前をつけて管理するためのタイトルとなる「Alias」と、接続先となる「Hostname」の入力です。接続先はDNSまたはIPアドレスで指定します。
それが済んだら、下段にある「Use SSH」をタップしてONにします。ONにすると自動的にSSH用の設定項目が現れるので、必要な項目に入力していきます。
PortはSSHサーバの接続ポート。Well-knownポートを使っているなら22ですね。
UsernameはSSHでログインする際のログインユーザ名、Passwordはそのユーザのログインパスワードを入力します。

ちょっとやっかいなのか、Keyの部分。ここは公開鍵暗号方式を使用する場合に秘密鍵を指定する項目です。
iPhone5S用に新たに鍵を作成してもいいのですが、前のRove Mobile Admin Clientの時と同様、現在5K iMacからの接続に使っている鍵をそのまま利用してiPhone5Sからリモートログインできるようにすることにしました。
そのためにはiPhone5Sに・・・というよりも、Termiusに5K iMacで使っている暗号鍵を登録しなければなりません。

なのでまずはこの段階で一度登録先(HOST)をsaveしておきます。

複数の接続HOSTを登録した時に識別しやすい名前をつけておかないと、あとでワケがわからなくなります(笑)
接続先が一つだけならどんな名前でもいいんですけどね〜。

保存できたら、続いてiPhone5Sと5K iMacをUSBで接続し、iTunesを起動します。

バックアップが自動で始まったりしますが、それはそのまま続けさせていてOK。
iPhone5Sの情報を開くと、左側のメニューに「ファイル共有」という項目が見つかるので、それをクリックします。
するとファイルを共有する(共有することのできる?)アプリが一覧で表示されます。僕のiPhone5SではMS Word、MS Excel、そして今回のTermiusでファイル共有できるようですね。共有できるアプリはもしかしたら自分で追加・削除などの変更を行うことができるのかもですが、今回はそこまでは調べてません。
何れにしても、そのTermiusをクリックしてファイル共有の対象を指定しておきます。

あとはその右側の空白エリアに共有したいファイルを放り込めばいいのですが、ここで一つ気をつけなければいけないことが。
Termiusの説明によれば、秘密鍵をインポートする際には

「iTunesを使ってあなたの(秘密)鍵をシェアすることができます。なお、サポートされるファイルタイプは以下のものです。text、txt、pem、key、ppk。」

という条件が付くのです。
なので、もし5K iMacの秘密鍵がこれらの拡張子を持たない場合(普通は持たないでしょう)、秘密鍵のファイルからこれらの拡張子がついたコピーを作成し、それを共有する、という手順になります。

5K iMacの秘密鍵は~/.sshにありますので、ターミナルでそこまで下りていき、その中にある秘密鍵のファイル(hogeというファイル名とします)に、上記いずれかの拡張子をつけたコピーを作ります。

$ cd ~/.ssh
$ cp hoge hoge.pem
$ ls -l
-rw——-@ 1 username  groupname  1743  3  2  2016 hoge
-rw——-@ 1 username  groupname  1743  3  5  2018 hoge.pem

コピーができたら、ターミナルからFinderで~/.sshディレクトリを開き、作成したhoge.pemをiTunesの先ほどの空欄に放り込めばOKです。

$ open ~/.ssh

これでiPhone5SのTermiusからこの暗号鍵を参照することができるようになります。

Termiusの設定画面からKeyChainをタップし、鍵の選択画面を開きます。おそらく先ほど登録したhoge.pemが表示されているはずなので、右上の「Edit」をタップし、hoge.pemを編集しておきましょう(先に指定された拡張子が付いていないと、この時に鍵ファイルを参照することができません)。

編集画面が開くと、秘密鍵の中身が表示されます。
その上段部分に「Key Name」と「Passphrase」があるので、Aliasの時と同様、わかりやすい名称を鍵につけておきましょう。というのも、ここでつけた名前が鍵の選択画面で表示されることになるからです(先ほどhoge.pemと表示されていたはずのところに好きな名前が表示できるということです)。
公開鍵暗号方式を使った鍵を作成した時にパスフレーズを設定しているはずなので、それも合わせて正しく入力しておきます(確かデフォルトでは空欄になっていたと思います)。
設定を終えたらSaveして鍵の設定は完了です。

最後に、もう一度HOSTの編集画面に入り、先ほど見設定のままにしておいた「Key」の項目をタップします。
すると鍵の選択画面が現れます。

使用する鍵をタップすれば、空欄だった「Key」の項目に、鍵の編集画面で指定した名称が表示され、公開鍵暗号方式を使ったSSHリモートログインができるようになります。

それでは早速試しています。
HOSTの選択画面を開き、接続するHOSTをタップ。設定に間違いがなければ、リモートログインの画面が開きます!

軽く触っただけですが、使い勝手は問題なさそうです。
どのみち、iPhone5Sでリモートログインした時にそんなに複雑な操作をするわけではありませんし(笑)

なお、僕はLAN側からもWAN側からもSSHでアクセスすることがあるので、HOSTとしてそれぞれを別個に登録し、必要に応じて切り替えて使うようにしています。
しかしここで一つだけ疑問が残ってしまいました。

僕は主にVPNを使ってiPhone5Sをインターネットに接続しているのですが(LANでもWANでも)、通常、LAN側からであってもVPNを通せば自前サーバへのアクセスはドメインネームでいけるはずなのに、なぜかTermiusだとLAN側からSSHする際に、VPNを通していてもドメインネームでのアクセスが弾かれてしまうんです(IPアドレスでの接続なら問題ない)。

というわけで現在は二つのHOST(LAN側のそれとWAN側のそれ)を切り替えて接続するようにしているのです。
特に困ることはないので別にいいのですが、やっぱりわからないことがあるのはなんかちょっとモヤモヤしますね〜・・・。

ま、でもこれで先ごろまで使えなかったiPhone5Sでのリモートログインが可能になりました。通勤途中などで気になった時にサーバにログインしてログを調べたり設定を変更したりできるのは(しょっちゅうあるわけではないにしても)やっぱり便利♪
てこずったけど、TERMIUSを導入してよかったです(^ ^)

7件のコメント

    1. 私自身はtermiusアカウントを作成せずに使っているため、
      同アカウントの登録、修正、削除等に関してはわかりません。
      普通に考えれば、termiusアカウントを作成したサイトで
      アカウント削除の方法などが(FAQとかで)載っているのではないかと思うので、
      そちらをご参照いただければと思います。

      1. 僕もアカウント作ってなかったです。
        でも、ログインしただけで無料トライアル開始とかっていう表示が出ました。
        この無料トライアル期間が終わったら支払いは強制なんですか?

      2. もうずいぶん前にインストールしたものなので詳細は忘れてしまいましたが、
        無料トライアルが終了してもそのまま無料で使い続けることができます(少なくとも私の環境ではそうです)。
        APP内課金は、termiusのプレミアムバージョン(サブスクリプションのようです)にアップグレードするのに必要なだけで、
        プレミアムが必要でないならばそのまま使い続けて問題ないと思います。

        何れにしても、強制的に対価を支払わされることはないはずですし、アカウントを作っていないのであれば尚更です。
        ですから、まずは無料トライアルで使い続け、14日目以降どうなるかを確認すればよろしいかと。

      3. わかりやすい回答ありがとうございました!

      4. でも、ログインしただけでで無料トライアルが開始されますよね….
        無料トライアル期間が終わったら支払いは強制なんですか?
        前文英語で困惑してます

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)