タイトル通りです。
Lightsailのデフォルトの機能であるブラウザからのSSH接続で、時折設定を変更していないのに接続できない時がありました。
最初はインスタンス内のログにSSH接続のエラーメッセージも見当たらなかったため、AWS側の一時的なネットワークの問題と思っていましたが、結論としてはCookieを削除することで解決しました。
ちなみにLigthsailは日本リージョンのゾーンA(ap-northeast-1a)で利用しています。
2022/4/10にLightsailを使い始め、以下の時間帯で接続できないことを確認していました。
年月日 | 時間 | 備考 |
2022/4/11 | 22:00 – 22:30 | 翌日はブラウザからも接続可能 |
4/13 | 22:00前後 | うろ覚え |
4/15 | 22:08 – 22:13 | 20時ころはブラウザからも接続可能 |
4/16 | 10:20 – 21:00 |
ブラウザから接続できない場合も、ターミナルからSSH接続はできました。インスタンス内の /var/log/auth.log に接続エラーがなかったので、インスタンスに到達できていないと当たりをつけ、AWS側の一時的なネットワークの問題と思っていました。が、4/16はあまりにも長い間接続ができなかったため、試行錯誤してみました。
試行錯誤
インスタンスの停止・起動
起動・停止することで解決するか試しましたが、だめでした。
開発者ツールでコンソールログ・ネットワーク通信の調査
ブラウザでのSSH接続の際、Chromeの開発者ツールでコンソールログとネットワーク通信を確認しました。ネットワーク通信にエラーはありませんでしたが、コンソールログで以下のWebsocketエラーが確認できました。
WebSocket connection to 'wss://connect-ap-northeast-1.lightsail.aws.amazon.com/ls/websocket-tunnel?~~~~~~~' failed:
ブラウザで正常にSSH接続できた際はこのエラーが発生しなかったため、接続できなかった原因はこのWebsocketエラーと思われました。
シークレットウィンドウでSSH接続
Chromeを使用しているため、シークレットウィンドウではどうなるか試してみました。
結果的に、シークレットウィンドウではSSH接続できることがわかりました。その後に通常ブラウザでSSH接続しようとしても接続できませんでした。
Chrome拡張機能の無効化
時々Chrome拡張機能が悪さをすることがあるとの情報をネットで見つけたため無効化してみましたが、ブラウザからのSSH接続はできませんでした。
AWSアカウントへログアウト・ログイン
一旦AWSからログアウト・ログインを行なってSSH接続をしてみましたが、当然SSH接続できませんでした。
ブラウザのCookie削除
ChromeのCookieを削除してからブラウザからSSH接続すると、無事接続が成功しました。
まとめ
CookieとWebsocketエラーの関係がいまいちわかりませんでしたが、Cookieを削除するという対処法がわかったのでよかったです。
Cookieを削除しなくても接続できる時もあったので、そこは謎です。