Android スマホから ssh接続をする

Android スマホから、当サイトのサーバに ssh接続することができれば、「いつでも、どこでも、サーバ管理」が実現できます。

Android マーケット でキーワード「ssh」で検索をかけると、ConnectBot というsshクライアントソフトがあることが分かりました。

早速、インストールして使ってみましたので、そこまでの過程をまとめておきます。 なお、ConnectBot のバージョンは 1.7.1 です。

1.OpenSSH 秘密鍵ファイルのコピー

USB接続モードにして、AndroidスマホをUSBケーブルでPCに繋いで、microSDメモリカードに、PCからOpenSSH 秘密鍵ファイルをコピーします。 このときのコピー先のディレクトリは、デバイス直下のルートディレクトリです。ここにコピーしないと、後々のインポートができません。 なお、この秘密鍵は OpenSSH 形式でなければなりません。

2.ConnectBot のインストール

Androidマーケットからインストールします。これは、他のアプリケーションと同様です。

3.OpenSSH 秘密鍵ファイルのインポート

ConnectBot に秘密鍵のインポート機能があります。クリックするとmicroSDメモリカードのルートディレクトリからOpenSSH形式の秘密鍵ファイルを探してきます。該当するものをクリックすれば、インポートされます。 インポートされた秘密鍵が表示されますので、右側の南京錠アイコンの鍵を外した状態にします。色で言うと、赤の状態から緑の状態にします。これで、使用できる状態になります。

4.ssh 接続

接続先を「ユーザ名@サーバ名:ポート」を入力して、接続します。 使用中の画面を載せておきます。SDKを使うなどして、PCでスクリーンキャプチャができると思いますが、写真に撮りましたので、とりあえずはそれで間に合わせます。

ConnectBot 操作中画面

Tera Term からSSHログインするための秘密鍵の変換

sshにはSECSHの形式とOpenSSHの形式があり、それぞれ鍵の形式が異なります。 また、sshクライアントが対応する秘密鍵の形式に違いが出てきます。 秘密鍵の形式の違いは下表の通りです。

SSHの形式 秘密鍵ファイルの先頭 対応するsshクライアント SECSH —- BEGIN SSH2 ENCRYPTED PRIVATE KEY —- Poderosa OpenSSH —–BEGIN RSA PRIVATE KEY—– Tera Term (TTSSH)

このように、秘密鍵の形式が異なり、sshクライアントによって対応する形式が違うため、SECSH の形式の秘密鍵を使用して Tera Term (TTSSH) からSSHログインすることはできません。その場合には、秘密鍵の変換が必要になります。

その変換は、PuTTYgen を使用して、次のような手順で行えます。

SECSHの秘密鍵をLoad [Conversions]-[Export OpenSSH key]で変換・保存

なお、変換後のファイル名には一般的に.ppk拡張子を付けます。

この変換後の秘密鍵を使用することで、Tera Term (TTSSH)からsshログインができるようになりますので、お試しください。