ターミナルではログインできているのに、VS Codeを開くともう一度パスワード入力が表示されます。
最短の解決策は、まずWindowsのターミナルでVS Codeと同じユーザー名、ホスト、ポートを使って通常のSSH接続を確認することです。認証後にVS Code Serverのインストールで止まるなら、パスワードを繰り返し入力せず、Remote - SSHのログと通信状態を調べます。
この手順が必要な人
Windowsパソコンだけで、VS CodeからリモートMacへ接続してPython、Web制作、iOS開発を学ぶ学生向けです。通常のSSHは使えるのに、VS Codeだけがパスワードや鍵の口頭を何度も求める場合に役立ちます。
一度接続できた後、再接続時にサーバーのインストール画面から進まない場合も対象です。macOSの「リモートログイン」はSSH接続を提供でき、VS CodeのRemote - SSHもSSHが有効なmacOSホストに接続できます。Appleのリモートログイン設定とVS Code公式のRemote - SSH説明を基準に確認します。
パスワードの再表示は、まず三つに分けます
「パスワードが出た」という同じ見た目でも、原因は同じとは限りません。認証前の入力、鍵の口頭入力、認証後のVS Code Server処理を分けて見ます。
| 画面に出る状態 | まず疑う場所 | 次にする操作 | 停止する条件 |
|---|---|---|---|
| SSH接続直後にパスワードを要求 | ユーザー名、ホスト、ポート | 通常のSSHを同じ条件で実行 | 通常のSSHが成功したらアカウント変更を止める |
| 秘密鍵の口頭を要求 | 鍵の保管場所、ssh-agent | 秘密鍵の指定とagentの状態を確認 | 正しい鍵が読み込まれたら再生成しない |
| 認証後にサーバー処理が再開 | VS Code Server、通信、ログ | Remote - SSHの出力を確認 | 認証成功が確認できたらパスワードを再入力しない |
Remote - SSHは、パスワードや代替認証トークンを拡張機能内に保存しないと公式に説明しています。認証とパスワードの扱いを確認すると、再接続時に入力を求められること自体は、直ちにアカウント故障を意味しないと判断できます。
なぜ毎回入力するのか
VS Codeがパスワードを記憶して次回も自動送信する仕組みとは限りません。複数回の接続が作られると、そのたびに認証が始まることがあります。
入力欄の文言を確認します。「Password」と表示される場合はアカウントのパスワード、「Enter passphrase」と表示される場合は秘密鍵を開く口頭です。二要素認証や学校側のログイン装置からの要求なら、SSH鍵だけを変更しても解決しません。
第一歩:通常のSSHが通るかをWindowsで確認します
VS Codeの設定を先に増やすと、原因が隠れます。まずWindows Terminal、PowerShell、またはコマンドプロンプトで、接続情報を一つずつ確認します。
ssh -p ポート番号 ユーザー名@ホスト名
ポートを指定していない環境では、案内された接続方法に合わせます。ここで確認するのは、入力したユーザー名が正しいか、ホストへ到達するか、パスワード入力後にMacのシェルが開くかです。
| 通常のSSHで見える結果 | 判断 | 低リスクな対応 |
|---|---|---|
| Macのシェルが開く | 基本認証は成功 | VS Codeのログへ進む |
| ユーザー名やパスワードで拒否 | アカウント情報の問題 | 管理者または環境提供元へ確認 |
| 接続がタイムアウト | 経路、ポート、電源状態の問題 | ホストとポートを再確認 |
| ホスト鍵の変更警告 | 接続先の識別情報が変化 | 自己判断で削除せず提供元へ確認 |
初回接続で表示されるホスト鍵は、門番が「この相手を以前見たか」と確認するための情報です。見覚えのない変更を受け入れるために、ホスト鍵の確認を無効にしないでください。公開ポートを増やしたり、クラス全員で一つのアカウントを共有したりする方法も避けます。
普通のSSHは通るのにVS Codeだけ失敗する場合
通常のSSHが成功したら、Macのアカウント設定を何度も変更する段階ではありません。次はVisual Studio Codeで、接続先と認証方法が同じかを確認します。
- VS CodeでRemote - SSHを開きます。
- 接続先のホスト名を選びます。
- 初回接続で選ぶプラットフォームはmacOSにします。
- パスワード入力の直後に出るメッセージを記録します。
- 「Output」でRemote - SSHのログを開きます。
- 接続が認証前で止まるか、認証後のサーバー処理で止まるかを分けます。
設定ファイルを使う場合は、ユーザー名、ホスト名、ポート、秘密鍵の指定が通常SSHと一致しているかを見ます。設定を複数作ると、ターミナルではAの接続先、VS CodeではBの接続先を使っていたという混同が起きます。
第二歩:SSH鍵を使うときは順番を崩しません
SSH鍵は、学生証と鍵に似ています。公開鍵は入室先に登録する学生証、秘密鍵は本人が保管する鍵です。秘密鍵をチャット、Gitリポジトリ、授業の共有フォルダーへ置いてはいけません。
Windows OpenSSHの鍵管理では、秘密鍵を端末側で管理し、必要に応じてssh-agentへ読み込ませます。MicrosoftのOpenSSH鍵管理手順に沿って、次の順で確認します。
| 確認順 | 見るもの | 確認内容 | うまくいかない場合 |
|---|---|---|---|
| 1 | 本機の秘密鍵 | 指定したファイルが存在するか | 作り直す前に保存場所を確認 |
| 2 | SSH設定 | IdentityFileが対象鍵を指すか | VS Codeと端末の設定を比較 |
| 3 | ssh-agent | 鍵が読み込まれているか | 学校PCの管理制限を確認 |
| 4 | リモートMac | 対応する公開鍵が登録済みか | 環境提供元に再登録を依頼 |
学校のパソコンでは、ssh-agentの起動やサービス操作が制限されることがあります。その場合、管理を回避するスクリプトを実行せず、許可されたパスワード認証を使うか、学校の管理者へ相談します。
鍵を使った接続では、秘密鍵の口頭を一度求められることがあります。これはMacのログインパスワードではなく、秘密鍵を保護するための口頭です。両者を混同しないことが重要です。
第三歩:認証後の「サーバーインストール」は別の問題です
パスワード入力の後に「Installing VS Code Server」などの処理が続く場合、認証そのものは通っている可能性があります。ここで入力を繰り返しても、遠隔側のダウンロード、展開、起動、通信の問題は直りません。
Remote - SSHは接続先でVS Code Serverを管理します。サーバーのインストールや起動に失敗したときは、公式トラブルシューティングのログ確認を優先します。
確認する場所は次の通りです。
- Remote - SSHのOutputログに、認証成功後のエラーがあるか。
- リモートMacが必要なファイルを取得できる環境か。
- ローカル側からの転送に切り替わった後、処理が止まっていないか。
- 以前のサーバー処理が残り、起動だけ失敗していないか。
- 拡張機能の読み込み失敗とSSH認証失敗を混同していないか。
出所不明のサーバーインストールファイルや修復スクリプトを入れないでください。サーバーコンポーネントの削除を検討する場合も、ログを保存してから行い、授業のプロジェクトフォルダーを削除対象にしないよう確認します。
修復後は「再接続できる」だけで合格にしません
一度だけ接続できても、実際の授業で使えるとは限りません。次の順で再現確認をします。
- [ ] VS Codeを完全に閉じ、もう一度起動する。
- [ ] 同じRemote - SSH接続先を選ぶ。
- [ ] 必要ならパスワードまたは鍵の口頭を入力する。
- [ ] リモートMac上の作業フォルダーを開く。
- [ ] VS Code内のターミナルで、現在のユーザーと作業場所を確認する。
- [ ] 小さなPythonまたはWeb用テストファイルを保存する。
- [ ] 変更を保存し、再接続後もファイルが残っているか確認する。
継続利用の判断は三つです。通常のSSHが安定し、パスワード入力を許容できるなら、その方法を続けます。許可を得た秘密鍵を安全に管理できるなら、鍵認証へ移行します。どちらも学校PCの制限や環境側の設定で成立しないなら、接続先の管理者または環境提供元へ依頼します。
現在の環境を続けるか、別のMac環境へ移るか
学校のパソコンを使い続ける方法は費用を抑えやすい一方、SSHエージェントの利用制限、ソフトウェアのインストール禁止、授業終了後のアカウント停止が障害になります。自宅のWindowsから接続する場合も、学校ネットワークのポート制限や共有アカウントの安全性を確認しなければなりません。
一方、MESHLAUNCHのようなレンタルMac環境を検討する場合は、独立したアカウント、SSHの利用条件、作業フォルダーの保存場所、Windowsからの接続方法を契約前に確認します。まずは日本語のMac環境案内を読み、授業期間だけ使うのか、自分で管理するMacを購入するのかを分けて考えるのが安全です。購入候補と比較したい場合は、Mac miniの注文情報も確認できます。
短期の課題、iOS開発の環境確認、学校PCにソフトを入れられない場合は、レンタルの方が準備を小さくできます。ただし、長期間の重い作業、物理的なiPhone接続、常時ローカル保存が必要な場合は、自分で管理するMacの方が適しています。
今回の切り分けで大切なのは、パスワード入力、SSH鍵、VS Code Serverを同じ問題として扱わないことです。通常のSSHが通った時点で認証確認を終え、次はログと再接続結果を見て、授業に必要な接続方式と保存場所を記録しておきます。