Chromebookだけしか使えない環境で、新しく立ち上げたAWSのEC2インスタンスにSSH接続する方法をまとめました。
ChromebookでAWSを使っている方の参考になればと思います。
※AWS EC2インスタンスの立ち上げたときにダウンロードした秘密鍵が手元にあることを前提とします
Chrome拡張「Secure Shell」を使う方法
定番SSHクライアント「Secure Shell」を使う方法です。
参考 Secure Shell – Chrome ウェブストア
Secure Shellでは公開鍵と秘密鍵のペアが必要ですが、AWSでは秘密鍵しかダウンロードできないので、Chromebook上で公開鍵の生成を行います。
が、Chromebookにはssh-keygenコマンドがないので、Androidアプリ「Termux」を併用して乗り切ります。
参考 Termux – Google Play の Android アプリ
1. Androidアプリ「Termux」をインストールする
下記リンクから「Termux」をインストールします。
参考 Termux – Google Play の Android アプリ
2. Termux上でopensshをインストールする
Termuxを立ち上げ、「ssh-keygen
」の実行に必要な「openssh
」をインストールします。
$ pkg install openssh
3. 秘密鍵の中身をTermuxにコピペして保存する
AWSの秘密鍵をTermux上に読み込ませます。
Termux上からChromebookのファイルへアクセスできないので、ファイルの中身をコピペします。
$ touch aws_key $ vi aws_key 〜vi上でコピペして保存〜
4. ssh-keygenで公開鍵を生成する
「ssh-keygen」コマンドで、秘密鍵から公開鍵を生成します
ssh-keygen -yf aws_key > aws_key.pub
5. 公開鍵の中身をコピペしてChromebook側に保存する
公開鍵の中身をChromebook側に戻すため、中身をコピペしてテキストファイルに保存します。
cat aws_key.pub 〜出力内容をコピペして保存〜
6. Secure Shellに鍵のペアをインポートして接続する
手元の公開鍵と秘密鍵のペアをSecure Shellにインポートして、EC2へ接続します。
これで完了です。
Androidアプリ「Termux」を使う方法
Androidアプリ「Termux」だけでもSSH接続が可能です。
こちらの場合、ネイティブのssh
コマンドが使えるので、秘密鍵から公開鍵を生成する必要がありません。
ただしTermuxはAndrodアプリなので、テキストのコピペその他、少し操作に難があります。
できればChrome拡張「Secure Shell」を使うほうが作業は楽だと思います。
1. Androidアプリ「Termux」をインストールする
下記リンクから「Termux」をインストールします。
参考 Termux – Google Play の Android アプリ
2. Termux上でopensshをインストールする
Termuxを立ち上げ、「ssh
」コマンドに必要な「openssh
」をインストールします。
$ pkg install openssh
3. 秘密鍵の中身をTermuxにコピペして保存する
AWSの秘密鍵をTermux上に読み込ませます。
Termux上からChromebookのファイルへアクセスできないので、ファイルの中身をコピペします。
$ touch aws_key $ vi aws_key 〜vi上でコピペして保存〜
4.sshコマンドを使って接続する
AWSのヘルプにある通りのコマンドでSSH接続します。
$ ssh -i "秘密鍵の名前" [email protected]
これにて完了です。
従来の方法との違い
これまでも、ChrombookからEC2インスタンスへSSH接続する方法は解説されていました。
- Chromeの「Secure Shell」を使用してAmazonEC2に接続する – yustam.jp
- Connect to EC2 via SECURE SHELL plugin for Google Chrome (Example)
しかし、いずれの方法も「秘密鍵からの公開鍵生成」は別のマシンで行うことが前提とされていました。
今回紹介した方法は、鍵の生成部分もChromebookだけで行う、もしくは鍵の生成不要でSSH接続できる点で、ちょっとだけ違います。
まとめ:調べるより聞くほうが早かったかも
以上、ChromebookだけでEC2インスタンスへSSH接続する方法を共有してみたんですが……
ぼくがエンジニアとしてきわめて非力なせいか、調べるだけで1時間くらいはかかりました。
でもコレ系って、知ってる人に聞くと一瞬でわかることが多いんですよね……
次からはteratailあたりでエンジニアの人に聞こうと思います。