環境
- クライアント側
- Macbook Pro
- Visual Studio Code
- リモート側
- Amazon Linux t2.microインスタンス(無料枠のやつ)
問題の内容
いつも通りVisual Studio CodeのRemote SSH拡張機能からSSH接続しようとしたら繋がらない
コンソール上でインスタンスが起動してることも確認済みだが、インスタンス上にはログなし。
VSCode側のエラーは以下。
[16:30:29.072] > local-server-2> Running ssh connection command: "-v -T -D 50014 -o ConnectTimeout=15 aws-linux"
[16:30:29.073] > local-server-2> Spawned ssh, pid=4314
[16:30:29.076] stderr> OpenSSH_9.4p1, LibreSSL 3.3.6
[16:30:44.083] stderr> ssh: connect to host **.***.***.*** port 22: Operation timed out
[16:30:44.084] > local-server-2> ssh child died, shutting down
通信がグローバルIPに到達してない。
~/.ssh/config
を確認したところ起動中のインスタンスのグローバルIPアドレスとconfigに記載されているIPアドレスが違っていた。ので~/.ssh/configの内容を今のIPアドレスに書き換え。
Host aws-linux
Hostname ***.***.***.***
User ec2-user
Port 22
IdentityFile ~/path/to/key.pem
インスタンスにElastic IPがアタッチされておらず、DynamicにIPが変わってたので、config書いた当初と今とでIPが変化していてSSHで接続できなかった。そりゃそうだ。