TeraTermを使用したGPUインスタンス接続手順
本記事では、TeraTermを使用してWebARENA IndigoGPUインスタンスに接続する手順を紹介します。
TeraTermはOSのバージョンによって、暗号化方式ならびに接続手順が異なりますので、ご注意ください。
ここでは、インスタンスのOSがUbuntu22.04およびUbuntu18.04の場合のそれぞれの手順を掲載しています。
WebARNEA IndigoGPUのインスタンスOSは、インスタンスタイプにより異なります。
詳細は、インスタンススペックをご確認ください。
1.<TeraTermのインスタンス接続手順 - Ubuntu22.04の場合>
1-1. ECDSA-256秘密鍵の生成(Ubuntu22.04)
まず秘密鍵の生成の手順を説明します。Ubuntu22.04では、秘密鍵にECDSA-256キーを使用します。
インスタンスに接続するローカルPC側で、TeraTermをインストールの後、TeraTermのアプリを起動します。
TeraTermの接続画面で、①「キャンセル」をクリックします。

②「設定」タブをクリックし、③「SSH鍵生成」を選択します。

④「鍵の種類」にECDSA-256を選択し、⑤「生成」をクリックします。

任意の⑥「鍵のパスフレーズ」、⑦「パスフレーズの確認」を入力後に、⑧「公開鍵の保存」をクリックします。

ローカルPC上のユーザーディレクトリ直下の .ssh ディレクトリに公開鍵を保存します。
例) sample_userというユーザー名の場合
C:\Users\sample_user\

次に、TeraTermの⑨「秘密鍵の保存」をクリックします。

ローカルPC上のユーザーディレクトリ直下の .ssh ディレクトリに秘密鍵を保存します。
例) sample_userというユーザー名の場合
C:\Users\sample_user\

1-2. ターミナルによるインスタンス接続(Ubuntu22.04)
ターミナルを2つ起動させてSSH接続をします。
1つ目のターミナルを起動します。
ユーザーディレクトリ直下で、下記のコマンドを実行し、アクセスサーバーへ接続します。
ssh -L 20122:(インスタンスIPアドレス):22 -l user as-highreso.com -p 30022 -i .ssh\ackey.txt

2つ目のターミナルを起動し、インスタンスへ接続します。
ssh user@localhost -p 20122 -i .ssh\mykey.txt

メモ帳の「開く」から、C:\Users\user_name\.ssh フォルダの 「id_ecdsa.pub」を開きます。

表示された公開鍵のデータ(文字列)をすべてコピーします。

インスタンスへ接続したターミナルにて、.sshディレクトリへ移動します。

authorized_keysファイルをnanoエディターで開きます。

先ほどコピーした公開鍵のデータを、authorized_keysのファイルにペーストします。authrized_keysに記述されているデータを消さずにペーストするように注意してください。ペースト後、「Ctrl+S」で上書き保存してください。「Ctrl+X」でauthorized_keysのファイルを閉じます。

「Ctrl+X」でauthorized_keysのファイルを閉じます。

1-3.マクロファイルの設定
任意のフォルダで、「右クリック」から「新規作成」、「テキストドキュメント」をクリックし、空のテキストファイルを作成します。(本記事では.sshフォルダ内に空ファイルに作成)

テキストドキュメントのファイル名を「xxxxx.ttl」に変更してください。本記事では「gpu-instance.ttl」の名称にしています。
※このとき、拡張子まで含めてファイル名を変更することに注意してください。
「拡張子を変更すると、ファイルが使えなくなる可能性があります。変更しますか?」とポップアップ表示がされますので、「はい(Y)」をクリックしてください。

ファイル名の変更が完了したら、このttlファイルを開き、以下のコードをコピーして、ttlファイルに貼り付けます。
;=========================================================================
;接続先、ユーザー名、パスワード設定
IPADDR = 'as-highreso.com'
KEY_FILE1 = 'C:\Users\(ユーザー名)\.ssh\ackey.txt'
USERNAME = 'user'
IPADDR2 = 'localhost'
KEY_FILE2 = 'C:\Users\(ユーザー名)\.ssh\id_ecdsa'
PORT_FOWARD = '20122:(インスタンスIPアドレス):22'
;=========================================================================
;コマンド組み立て
COMMAND = IPADDR
strconcat COMMAND ':30022 /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE1
strconcat COMMAND ' /F='
strconcat COMMAND ' /ssh-L'
strconcat COMMAND PORT_FOWARD
;接続
connect COMMAND
;=========================================================================
unlink
COMMAND = IPADDR2
strconcat COMMAND ':20122 /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE2
connect COMMAND
ttlファイルに貼り付けた後に、ttlファイルに記述されている項目の「KEY_FILE1」、「KEY_FILE2」、「PORT_FOWARD」を編集します。
「KEY_FILE1」には、アクセスサーバー用秘密鍵(ackey.txt)のパスを入力します。
ttlファイルの「KEY_FILE2」には、TeraTermから生成したインスタンス用秘密鍵(id_ecdsa)のパスが入ります。
ttlファイルの「PORT_ROWARD」には、インスタンスIPアドレスが入ります。
インスタンスIPアドレスは、WebARENA IndigoGPUコンパネの「インスタンス管理」から確認できます。

※IPアドレスを囲っている( )の記号が残らないようにご注意ください。
※数字の両端がシングルクォーテーション「'」で囲われていることに注意してください。
※インスタンスIPアドレスが変更になった際は、マクロファイルのIPアドレスも修正してください。
;=========================================================================
;接続先、ユーザー名、パスワード設定
IPADDR = 'as-highreso.com'
KEY_FILE1 = 'C:\Users\(ユーザー名)\.ssh\ackey.txt'
USERNAME = 'user'
IPADDR2 = 'localhost'
KEY_FILE2 = 'C:\Users\(ユーザー名)\.ssh\id_ecdsa'
PORT_FOWARD = '20122:(インスタンスIPアドレス):22'
これでマクロファイルの設定が完了しました。
1-4. TeraTermによるインスタンス接続(Ubuntu22.04)
TeraTermを開き、「コントール」から「マクロ(M)」をクリックします。

エクスプローラーがポップアップ表示されますので、先ほど設定したマクロファイルを選択して「開く」をクリックします。

その後、自動的にTermの画面が2つ起動します。
1つがアクセスサーバーに接続している画面です。

もう1つの画面は、インスタンス接続用の画面になります。
ログイン時に警告がポップアップされますが、「続行」のボタンをクリックします。

次の画面が表示されたら、インスタンスへの接続が完了です。

以上でUbuntu22.04の場合のインスタンス接続が完了です。