iOS Pythonista 3 で XServer に SSH 接続

Pythonista 3 の StaSh を使って SSH で XServer へ接続する

Pythonista 3 の StaSh を使ってホスティングサーバである XServer へ SSH 接続する方法です。ポイントは、XServer のサーバーパネルで「公開鍵認証用鍵ペアの生成」を行わず、StaSh の ssh-keygen コマンドでパスフレーズ無しのキーを作成するということ。パスフレーズを付けて作られたキーは StaSh のssh で動かないようです。おそらく他の SSH 接続を許可するホスティングサーバでも同様の方法で接続可能かと思いますのでお試しください。
XServer の SSH 設定方法 (公式) はこちら

StaSh でキーを作成

$ ssh-keygen -t rsa -b 2048

以下のパスに秘密鍵と公開鍵が作られる。

~/Documents/site-packages/stash/.ssh
$ ls
id_rsa id_rsa.pub

後は、公開鍵を XServer のサーバパネルで登録すれば、以下コマンドでサーバに SSH 接続できる。

SSH コマンド

$ ssh username@username.xsrv.jp -p 10022

(“username” は自分のアカウント名に差し替える)

初めて ssh コマンドを実行すると、どうやら自動的に pyte というターミナルエミュレータが pip でインストールされます。そのまま ssh コマンドを実行してもエラー global name 'pyte' is not defined と表示される場合は、Pythonista 3 を終了してから再度立ち上げてください。

(蛇足) SSH しているときの行数を指定

ここまできたらこっちのもの、.stashrc ファイルに alias を登録したり (こちらを参照)、他の iOS 端末や SSH アプリ、パソコン等に .ssh フォルダの中の ids_rsa を持って行ってそれらの環境で SSH 接続ができるようにすれば作業がはかどります。 ids_rsa ファイルは秘密鍵ですので、絶対に他の人に見られないよう取り扱いには注意しましょう。

一点 Pythonista 3 の StaSh で SSH 接続している際の残念な点は、入力中は画面下の [Tab] [H] [Up] などの StaSh のもつ特殊キーの列と iOS のキーボードのソフトウェアキーボードが常に出てしまうところです (Bluetooth キーボードを使用していても 3行分ほど狭くなる)。面倒ですがログインする端末に応じて、stty コマンドで、画面の行数を指定しまいましょう。一画面に収まって作業がしやすくなります。以下を参考に、自分の環境でちょうどいい行数を指定してみてください。

$ stty rows 51 # iPad mini 2 で外付けキーボードならここまでイケる
$ stty rows 27 # iPhone 8 Plus でソフトウェアキーボードならここまでイケる
© Peddals.com