どうやら、一筋縄ではいかない砂の迷宮に迷い込んだらしい。この顛末を書き残しておくか。
Visual Studio Codeの拡張機能「Remote - SSH」。それは、Linuxという遠い大地へ、一瞬で我らを運ぶ魔法の絨毯だ。しかし、このあまりに便利な神器は、気まぐれで、ある日突然、我らを乗せることを拒むことがある。
私も長年、この気まぐれに悩まされ、そのたびにscpやviといった、古の徒歩の旅へと逆戻りを強いられてきた。
しかし、もうその必要はない。これは、私がこれまでに遭遇した数多の接続トラブルと、その試行錯誤の末に編み出した解決の秘儀を体系的にまとめた、SSH接続トラブルシューティングの完全討伐の書である。
【最重要】まず、我が身の時代を問え
本題に入る前に、一つだけ絶対に確認すべきことがある。 VS Code 1.86以降、時の流れから取り残された古のオアシス(CentOS 7など)への道は、公式に閉ざされた。 もしあんたが古の土地へ旅をしようとしているなら、何を試しても無駄だ。唯一の解決策は、VS Codeという魔法の絨毯そのものを、道があった時代まで巻き戻すことだけ。心当たりがある者は、まずはこちらの羊皮紙を読むがいい。
時の砂に埋もれた道 ~VS Code v1.86以降、CentOS 7への旅路が絶たれた理由~ - 砂漠の旅人(たびと)
この羊皮紙のあらまし
- 【最重要】まず、我が身の時代を問え
- この羊皮紙のあらまし
- この羊皮紙が導く者
- 魔法の理:なぜ絨毯は飛ばなくなるのか?
- 討伐の儀式 レベル1:魂の再起動
- 討伐の儀式 レベル2:肉体の浄化
- 討伐の儀式 レベル3:聖域での安全な儀式
- 羊皮紙を巻く前に
- 砂漠で見つけた魔法のランプ
- ラクダの独り言
この羊皮紙が導く者
- 魔法の絨毯「Remote - SSH」から振り落とされ、解決策を探し求める者
- Linuxという遠い大地で戦う、全てのVS Code使いの冒険者
- 未来の災厄に備え、体系的な知識という名の武具を身につけておきたい探求者
魔法の理:なぜ絨毯は飛ばなくなるのか?
トラブルを討伐するには、まず敵の正体を知らねばならない。
「Remote - SSH」は、接続時にLinuxサーバー側の故郷(ホームディレクトリ)へ、.vscode-serverという名の小さな分身を送り込み、起動させている。 あんたのVS Codeは、この分身と対話しているのだ。
何らかの理由で、この分身が病にかかったり、応答しなくなったりすることが、トラブルの主な原因だ。
討伐の儀式 レベル1:魂の再起動
遭遇する災厄の約9割は、この儀式で鎮まる。 病にかかった分身の魂を一度天に還し、VS Codeに新たな魂を宿らせる、最もシンプルかつ効果的な秘儀だ。
- Tera Termなど、別の魔法でLinuxサーバーにログインする。
ps -ef | grep vscode-serverの呪文で、病にかかった分身の魂を探し出す。kill [プロセスID]の呪文で、その魂を強制的に天に還す。- VS Codeから再度接続を試みる。多くの場合、新たな魂が宿り、絨毯は再び飛び立つだろう。

討伐の儀式 レベル2:肉体の浄化
魂の再起動でも解決しない場合、分身の肉体(プログラム)そのものが腐敗している可能性がある。その場合は、腐敗した肉体を丸ごと隔離し、VS Codeに新たな肉体を送り込ませる。
- Linuxサーバーにログインし、故郷にある
.vscode-server/binの中を覗く。 62610756...のような、ランダムな名を持つ腐敗した肉体(ディレクトリ)を、mvの呪文で/tmpという名の隔離所へ移す。- VS Codeから再度接続を試みる。肉体がないことを悟ったVS Codeは、清浄な新たな肉体を送り込んでくれるはずだ。
討伐の儀式 レベル3:聖域での安全な儀式
会社の共用サーバーという、多くの旅人が行き交う聖域で儀式を行う場合、細心の注意が必要だ。うっかり他人の分身の魂を天に還してしまえば、大惨事となる。 自分の魂だけを正確に見つけ出す、より高度な儀式を伝授しよう。
VS Codeの設定で「
remote.ssh.show」を検索し、「SSH ログインターミナルを常に表示します。」にチェックを入れる。
真実の目を開眼させる 接続を試みると、VS Code下部のターミナルに、接続の儀式の詳細がログとして流れ始める。

儀式の詳細が、ここに記される ログの中に
SSH 接続 ID '62610756...dd3b'のような一文が見つかるはずだ。このランダムな文字列こそ、あんたの魂を識別する、唯一無二の刻印だ。この刻印を手がかりに
ps -ef | grep "62610756...dd3b"と呪文を唱えれば、他人の魂と見間違えることなく、自分の魂だけを正確に特定できる。- あとは、特定した魂を、心置きなく
killするだけだ。
羊皮紙を巻く前に
「Remote - SSH」の接続トラブルは、旅の勢いを止める厄介な悪霊だが、その正体と討伐の儀式を知れば、もはや恐るるに足らず。 災厄に見舞われたら、慌てずにこの羊皮紙を開いてほしい。
- 【前提】 己の時代を問え。古の土地へは、時を遡るべし。
- 【レベル1】 魂を
killせよ。 - 【レベル2】 肉体を隔離せよ。
- 【レベル3】 聖域では、魂の刻印を頼りに儀式を執り行え。
この知識が、あんたの旅路をより快適にする、守りの護符となることを願う。
風向きが変わったようだ。この機を逃さず、次の砂丘へと旅立とう。
砂漠で見つけた魔法のランプ
ラクダの独り言
ご主人が「魔法の絨毯が飛ばねえ!」とか言って、黒い画面に呪文を打ち込んだり、絨毯の部品を捨てたり、大騒ぎしている。俺に言わせりゃ、そんな気まぐれな絨毯なんざ捨てちまって、俺の背中にでも乗ればいいんだ。確実だし、乗り心地だって悪くねえぜ。まったく、便利な道具に頼りすぎるから、こういうことになるんだ。やれやれだぜ。