LoginSignup
5
2

More than 1 year has passed since last update.

Katacoda 環境に SSH ログインする方法

Last updated at Posted at 2020-07-15

はじめに

ハンズオンなどで一時的なサーバー環境として利用できる Katacoda は非常に便利ですね。
しかし、ブラウザからアクセスする必要があるので、通常ターミナル操作もブラウザで行う必要があります。
そこで、PC から ngrok 経由で SSH アクセスする方法を試してみました。

準備

1. ngrok のアカウント登録とアクセストークン作成

ngrok のアカウントを登録し、アクセストークンを作成します。
無料プランの場合は作成できるアクセストークンは 1 つです。

2. Katacoda 環境の SSH キー (秘密鍵) の取得

Katacoda 環境を立ち上げて SSH キー (秘密鍵) を表示し、PC へ保存します。

$ cat .ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIJJwIBAAKCAgEAqqIFkwTmb7C3M+2cc+4uPmdNFgNNWPsaTbL1Igum5AfBeD4b
lZCjJ/sMOxf1LS3EPajulNSvH+RaZA5nkEC71e7mApxu1+t4mvp4z4BfHrhea6Vr
5oxuWc/+oCxn/PsBTQuMl8o1Oxu1XHuffyXW2j1HTpgN2i9lijMaHmvyAzkxADkR
XMjCzTSXctMmDcS3xJe8NyGNdqaP3D29lSnqiaot1KsCa6A2IwjreX0uBadLb872
4lz/Pp24XdLk0xJILZd/xVNKM0AQB4DulJW0ldbCRCI2RvueNxbUX1dLW5lMk+/j
dDRjmWCdxUNQfzKz+h/Dv/GIYmkAy8JC+c4cT6lvXMgGcNtO7mWzNuqIXwkFDJha
GCfXwQP3be2l28Oa29JYoRWGTKveDVItwASwwRLE/SefpiaJnZVBw8B8c7XIzvCZ
04T+YgXGJjYqgJ4W5+9QL6/Gc9bx1T9ExQvH+NDZyvwO58E0MNGkPh9LvhBq8fto
FZklJcEMgw1JRyaRCNCHn1rXZgamLzMn1Q3/EhkqJZHF1CcV+t4ghRMjzMjC1Fi2
z3MEYZVJ+hujVQyOrC8H73nlxSaabkjMflqnN2ZshByI/5lbhLsoFZHtwXeP7/Hu
KOmnUfd8hfxbqtENGzIYH9sQsFRUmqpbWv6OZtMDDcAjtzbgywmYyBY9/r8CAwEA
AQKCAgBhDgl3p3jfHLgIDGZKNrcM/bsGA1jSfPloKptuAwypdZPhLgqIlx2GlzBM
yILHcNnHbLhP5W27CSs08FCN55QvylQANjSCEkimdkOTW2Q/WAU024G1QDlgUoN1
XezEI42I4kHU8Mo4Vblh4ltFeiNsPSC7Hpf6e60Y35pCpYmhtb0ecFdk3DiZegmO
(省略)

3. Katacoda 起動スクリプトの準備

以下の流れで起動スクリプトを記述します。

  • ngrok プログラム (zip ファイル) をダウンロードする
  • zip ファイルを解凍する
  • アクセストークンを登録する
  • ngrok を起動する
foreground.sh
wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
unzip *.zip
./ngrok authtoken [アクセストークン]
./ngrok tcp 22

手順

1. Katacoda 環境の起動

Katacoda のシナリオを実行し環境を起動します。
ngrok の無料プランは起動する度に接続先 (ホスト名とポート番号) が変わるのでメモしておきます。
以下の例では、ホスト名: 0.tcp.ngrok.io、ポート番号: 17786 です。

2. PC から SSH 接続

準備 2.で取得した SSH キー (秘密鍵) を ファイル名: id_rsa で保存した場合のコマンドです。

$ ssh -i ./id_rsa -p [ポート番号] root@[ホスト名]

# 上記の例
$ ssh -i ./id_rsa -p 17786 root@0.tcp.ngrok.io

※ Are you sure you want to continue connecting (yes/no)? と聞かれた場合は yes と回答します。

応用例

ngrok の起動オプションを変更すると PC から VNC 接続でデスクトップ画面を表示させることも可能です。
PC から VNC 接続する際のパスワードを password に設定して vncserver を起動する例です。
PC の VNC Viewer から接続する際にホスト名、ポート番号、パスワードを指定します。

foreground.sh
printf "password\npassword\n\n" | vnc4passwd
nohup vncserver -geometry 1366x768

wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
unzip *.zip
./ngrok authtoken [アクセストークン]
./ngrok tcp 5901

2022/4/12 追記

id_rsa (SSH キーの秘密鍵)はKatacodaのシナリオを実行の都度、作成されるようになりました。
ngrok を起動するとセッションを切られるようになりました。

スクリーンショット 2022-04-12 11.56.41.png

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2