「サーバーにあるファイルを編集するのに、毎回コマンドラインで作業するのは大変…」「ローカルとリモートでファイルを同期させるのが面倒…」そんな悩みを抱えていませんか?
Visual Studio Code(VSCode)のRemote-SSH拡張機能を使えば、リモートサーバー上のファイルを、まるでローカルのファイルのように編集できます。コード補完、デバッグ、拡張機能まで、すべてがリモート環境で使えるようになります。
この記事では、VSCodeを使ってSSH接続でサーバーに接続する方法を、初心者にも分かりやすく完全解説します。画像がなくても理解できるよう、手順を丁寧に説明していきます。
Remote-SSHとは?何ができるの?

まず、Remote-SSH拡張機能がどんなものか理解しましょう。
Remote-SSHでできること
Remote-SSHは、VSCodeからSSH経由でリモートサーバーに接続し、リモート環境で直接開発できるようにする拡張機能です。
具体的に何ができる?
- リモートのファイルを直接編集
- サーバー上のファイルをローカルと同じように編集
- FTP/SFTPでアップロードする必要なし
- コード補完・入力支援が使える
- インテリセンス(自動補完)が完全動作
- ローカル開発と同じ快適さ
- デバッグもできる
- ブレークポイント設定
- ステップ実行
- 変数の確認
- 統合ターミナル
- サーバーのターミナルをVSCode内で使用
- 別途SSH接続する必要なし
- 拡張機能が使える
- GitLens、Python、ESLintなど、各種拡張機能がリモートでも動作
従来の方法との違い
従来の開発スタイル:
- ローカルで編集 → FTP/SCPでアップロード → 動作確認
- またはVimやnanoでサーバー上で直接編集
Remote-SSHを使った開発スタイル:
- リモートファイルをVSCodeで直接編集
- 保存すると即座にサーバーに反映
- ローカル開発と同じ快適さ
事前準備:必要なものを揃えよう
Remote-SSHを使う前に、いくつか準備が必要です。
1. 必要なソフトウェア
クライアント側(あなたのパソコン):
- Visual Studio Code(最新版推奨)
- SSH クライアント
- Windows 10/11: OpenSSH Client(標準搭載)
- macOS: 標準で利用可能
- Linux: openssh-client パッケージ
サーバー側:
- SSH サーバーが動作していること
- Linux、Unix系 OS(WindowsやmacOSのSSHサーバーはまだ正式サポート外)
2. SSH接続の基本情報
接続に必要な情報を確認しておきましょう:
- サーバーのIPアドレスまたはホスト名
- ユーザー名
- 認証方法(パスワード認証または鍵認証)
- ポート番号(通常は22)
3. SSH鍵の準備(推奨)
パスワード認証でも接続できますが、鍵認証の方がセキュアで便利です。
ステップ1:SSH鍵を作成する(鍵認証の場合)
すでに鍵認証を使っている場合は、このステップをスキップできます。
Windows での鍵作成
手順:
- PowerShellまたはコマンドプロンプトを開く
.sshディレクトリに移動:
cd C:\Users\あなたのユーザー名\.ssh
- SSH鍵を生成:
ssh-keygen -t rsa -b 2048 -f id_rsa_vscode
- パスフレーズを聞かれたら:
- セキュリティを高めたい場合:パスフレーズを入力
- 手軽に使いたい場合:何も入力せずEnterを2回押す
- 2つのファイルが作成されます:
id_rsa_vscode(秘密鍵)id_rsa_vscode.pub(公開鍵)
macOS / Linux での鍵作成
手順:
- ターミナルを開く
.sshディレクトリに移動:
cd ~/.ssh
- SSH鍵を生成:
ssh-keygen -t rsa -b 2048 -f id_rsa_vscode
- パスフレーズの入力(Windowsと同様)
- 鍵ファイルが生成される
公開鍵をサーバーに登録
作成した公開鍵(.pub)をサーバーに登録します。
方法1:ssh-copy-idコマンドを使う(Linux/macOS)
ssh-copy-id -i ~/.ssh/id_rsa_vscode.pub ユーザー名@サーバーアドレス
方法2:手動で登録
- 公開鍵の内容をコピー:
cat ~/.ssh/id_rsa_vscode.pub
- サーバーにSSH接続
~/.ssh/authorized_keysに公開鍵を追加:
mkdir -p ~/.ssh
echo "公開鍵の内容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ステップ2:VSCodeにRemote-SSH拡張機能をインストール
いよいよVSCode側の設定です。
拡張機能のインストール手順
- VSCodeを起動
- 拡張機能ビューを開く
- サイドバーの拡張機能アイコン(四角が4つ重なったマーク)をクリック
- または、
Ctrl + Shift + X(Mac:⌘ + Shift + X)
- 検索バーに入力
- 「Remote Development」と入力
- または「Remote-SSH」と入力
- Remote Developmentをインストール
- 「Remote Development」という拡張機能を見つける
- 「インストール」ボタンをクリック
Remote Developmentには以下が含まれます:
- Remote – SSH
- Remote – WSL
- Remote – Containers
- Remote – SSH: Editing Configuration Files
インストール完了の確認
インストールが完了すると:
- 左下に緑色のアイコンが表示される
- 「><」のような形
- これをクリックすると、リモート接続のメニューが開く
- サイドバーに新しいアイコンが追加される
- 「リモートエクスプローラー」というアイコン
ステップ3:SSH設定ファイルを編集する
接続先の情報をVSCodeに登録します。
SSH設定ファイルを開く
- 左下の緑色のアイコン「><」をクリック
- メニューから「Remote-SSH: SSH構成ファイルを開く」を選択
- 設定ファイルの場所を選択:
- Windows:
C:\Users\ユーザー名\.ssh\config - macOS/Linux:
~/.ssh/config
どちらを選ぶ?
通常は一番上に表示される、ユーザーのホームディレクトリにあるconfigを選びます。
設定ファイルに接続情報を追加
configファイルが開いたら、以下の形式で接続情報を記述します。
基本的な書式:
Host 接続名(任意の名前)
HostName サーバーのIPアドレスまたはホスト名
User ログインユーザー名
Port 22
IdentityFile 秘密鍵のフルパス(鍵認証の場合)
具体例1:パスワード認証の場合
Host myserver
HostName 192.168.1.100
User webadmin
Port 22
具体例2:鍵認証の場合(Windows)
Host production-server
HostName 203.0.113.50
User deploy
Port 22
IdentityFile C:\Users\username\.ssh\id_rsa_vscode
具体例3:鍵認証の場合(macOS/Linux)
Host dev-server
HostName dev.example.com
User developer
Port 22
IdentityFile ~/.ssh/id_rsa_vscode
具体例4:カスタムポートを使う場合
Host custom-server
HostName example.com
User admin
Port 2222
IdentityFile ~/.ssh/id_rsa_vscode
設定項目の説明
Host:
- 接続先を識別する名前(自由に設定可能)
- この名前がVSCodeの接続先リストに表示される
- 短くて分かりやすい名前がおすすめ
HostName:
- サーバーの実際のアドレス
- IPアドレスまたはドメイン名
User:
- SSH接続に使用するユーザー名
Port:
- SSH接続に使用するポート番号
- デフォルトは22
- サーバー側でポート番号を変更している場合は、その番号を指定
IdentityFile:
- 秘密鍵のパス(鍵認証を使う場合のみ)
- 必ずフルパスで指定
- パスにスペースが含まれる場合は、引用符で囲む
設定を保存
- 設定の記述が終わったら、
Ctrl + S(Mac:⌘ + S)で保存 - ファイルを閉じてOK
ステップ4:サーバーに接続する
いよいよサーバーに接続してみましょう!
接続の手順
方法1:リモートエクスプローラーから接続
- サイドバーの「リモートエクスプローラー」アイコンをクリック
- 上部のドロップダウンから「リモート(トンネル/SSH)」を選択
- 「SSH」セクションに、configで設定した接続先が表示される
- 接続先の名前の右側にある矢印アイコンをクリック
- →アイコン:現在のウィンドウで接続
- +アイコン:新しいウィンドウで接続
方法2:コマンドパレットから接続
Ctrl + Shift + P(Mac:⌘ + Shift + P)でコマンドパレットを開く- 「Remote-SSH: Connect to Host」と入力して選択
- リストから接続先を選択
初回接続時の手順
初めて接続するサーバーの場合、以下の確認が行われます。
Step 1:プラットフォームの選択
サーバーのOSを選択:
- Linux
- macOS
- Windows
通常はLinuxを選択します。
Step 2:フィンガープリントの確認
「このサーバーのフィンガープリントを信頼しますか?」と聞かれます。
- 問題なければ「続行」または「Continue」をクリック
Step 3:パスワードまたはパスフレーズの入力
- パスワード認証の場合: サーバーのパスワードを入力
- 鍵認証(パスフレーズあり)の場合: 鍵のパスフレーズを入力
- 鍵認証(パスフレーズなし)の場合: 自動でログイン
Step 4:VS Code Serverのインストール
初回接続時、サーバー側にVS Code Serverが自動インストールされます。
- 数分かかることがあります
- 進行状況が画面右下に表示される
- 完了するまで待つ
接続成功の確認
接続に成功すると:
- 画面左下に接続先の名前が表示される
- 例:「SSH: myserver」
- 新しいウィンドウが開く(新しいウィンドウで接続を選択した場合)
- ウィンドウ全体がリモート環境になる
ステップ5:リモートフォルダを開く

接続できたら、サーバー上のフォルダを開きましょう。
フォルダを開く手順
- 「ファイル」メニュー → 「フォルダーを開く」
- または
Ctrl + K→Ctrl + O
- サーバー上のパスを入力
- 例:
/home/username/project - 例:
/var/www/html
- 「OK」をクリック
- パスワードまたはパスフレーズの入力を求められる場合がある
- これが最後の認証です
フォルダが開いたら
- エクスプローラーにサーバー上のファイル一覧が表示される
- ローカルファイルと同じように操作できる
- ファイルを開いて編集すると、保存時にサーバーに直接反映される
ステップ6:ターミナルを開く
サーバー上でコマンドを実行したい場合、統合ターミナルを使います。
ターミナルを開く方法
- 「ターミナル」メニュー → 「新しいターミナル」
- または
Ctrl + Shift + @(Mac:⌘ + Shift + @)
- VSCode下部にターミナルが開く
- サーバー上のシェルが起動している
- bashやzshなど、サーバーの標準シェル
ターミナルでできること
- サーバー上のコマンドを実行
- Gitコマンド
- パッケージのインストール(npm、pip など)
- サーバーの起動(node、python -m http.server など)
リモート開発の便利な機能
Remote-SSHには、さらに便利な機能があります。
1. ポートフォワーディング
サーバー上で動作しているWebアプリを、ローカルのブラウザで確認できます。
手順:
- サーバー上でアプリを起動(例:ポート5000で起動)
- コマンドパレットを開く(
Ctrl + Shift + P) - 「Forward a Port」を選択
- ポート番号を入力(例:5000)
- ローカルのブラウザで
http://localhost:5000にアクセス
自動フォワーディング:
VSCodeが自動的に起動中のポートを検出し、フォワーディングを提案してくれることもあります。
2. リモート拡張機能のインストール
拡張機能は、ローカルとリモートで別々に管理されます。
リモート環境に拡張機能をインストール:
- 拡張機能ビューを開く
- インストールしたい拡張機能を見つける
- 「SSH: 接続先名 にインストール」ボタンをクリック
よく使う拡張機能を自動インストール:
設定(settings.json)に以下を追加:
"remote.SSH.defaultExtensions": [
"ms-python.python",
"eamodio.gitlens",
"esbenp.prettier-vscode"
]
3. デバッグ
リモート環境でもデバッグが可能です。
デバッグの手順:
.vscode/launch.jsonでデバッグ設定を作成- ブレークポイントを設定
F5キーでデバッグ開始- アプリはサーバー上で実行され、デバッガがアタッチされる
4. 複数の接続を同時に管理
複数のサーバーに同時接続することもできます。
手順:
- 最初のサーバーに接続
- もう一度左下の「><」アイコンをクリック
- 「Remote-SSH: Connect to Host」を選択
- 別のサーバーを選択
- 新しいウィンドウで2つ目のサーバーに接続
よくあるトラブルと解決方法
Remote-SSHを使っていると、いくつかのトラブルに遭遇することがあります。
トラブル1:接続がハングする
症状:
- 接続中に止まってしまう
- 「Connecting to SSH Host…」から進まない
解決方法:
- コマンドパレットを開く
- 「Remote-SSH: Kill VS Code Server on Host」を実行
- もう一度接続を試みる
根本的な解決:
サーバー側の~/.vscode-serverフォルダを削除:
rm -rf ~/.vscode-server
トラブル2:パスワードを何度も聞かれる
症状:
- 接続のたびに何度もパスワード入力が必要
解決方法1:鍵認証に切り替える
パスワード認証より鍵認証の方が快適です。
解決方法2:ControlMaster を使う(macOS/Linux)
SSH設定ファイルに以下を追加:
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
これにより、一度の認証で複数の接続を共有できます。
トラブル3:権限エラーが出る
症状:
- Permission denied
- ファイルが開けない、保存できない
原因:
- SSH鍵のパーミッションが不適切
- サーバー側のファイルパーミッションの問題
解決方法:
秘密鍵のパーミッション修正(ローカル):
chmod 600 ~/.ssh/id_rsa_vscode
公開鍵のパーミッション修正(サーバー):
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
トラブル4:接続先が表示されない
症状:
- configで設定したのに、接続先リストに表示されない
解決方法:
- リモートエクスプローラーのリフレッシュアイコンをクリック
- VSCodeを再起動
- configファイルの記述ミスを確認
- インデントは半角スペース4つ
- タブ文字は使わない
トラブル5:GitHubの認証を求められる
症状:
- VSCode 1.82.0以降で、GitHub認証のポップアップが表示される
原因:
- 新しいバージョンでは、Remote機能にGitHub認証が統合された
対処法:
- GitHubアカウントを持っている場合:
- 「許可」をクリック
- ブラウザでGitHubにログイン
- VSCodeに戻る
- GitHubアカウントを持っていない場合:
- GitHubアカウントを作成するか
- 認証をスキップ(一部機能が制限される可能性)
応用テクニック
より高度な使い方を紹介します。
ジャンプホスト経由の接続
会社のネットワークなどで、直接サーバーに接続できない場合に使います。
シナリオ:
- 踏み台サーバー(jump-box)経由でしか本番サーバーにアクセスできない
設定例:
# 踏み台サーバー
Host jump-box
HostName 203.0.113.10
User jumpuser
IdentityFile ~/.ssh/jump_key
# 本番サーバー(踏み台経由)
Host production
HostName 10.0.1.50
User produser
IdentityFile ~/.ssh/prod_key
ProxyJump jump-box
この設定で「production」に接続すると、自動的にjump-box経由で接続されます。
ファイアウォール内のサーバーへの接続
インターネットに接続できないサーバーの場合、VS Code Serverを手動でインストールする必要があります。
手順:
- 別のマシンでVS Code Serverをダウンロード
- サーバーに手動で転送
- 特定の場所に配置
詳細は公式ドキュメントを参照してください。
接続を終了する方法
作業が終わったら、接続を切断しましょう。
切断の方法
方法1:メニューから
- 「ファイル」メニュー → 「リモート接続を閉じる」
方法2:左下のアイコンから
- 左下の「SSH: 接続先名」をクリック
- 「Close Remote Connection」を選択
方法3:VSCodeを閉じる
- VSCodeを閉じると自動的に接続も切断される
まとめ:Remote-SSHで開発が変わる
VSCodeのRemote-SSH拡張機能を使えば、リモート開発が驚くほど快適になります。
このガイドで学んだこと
- Remote-SSH拡張機能のインストール
- SSH鍵の作成と登録
- SSH設定ファイルの編集
- サーバーへの接続手順
- リモートフォルダの操作
- ターミナルの使用
- トラブルシューティング
Remote-SSHのメリット
✅ ローカルとリモートでファイルを同期する手間がなくなる
✅ リモート環境でも快適なコード補完が使える
✅ デバッグもローカルと同じように使える
✅ 複数のサーバーを簡単に切り替えられる
✅ ターミナルもVSCode内で完結
こんな人におすすめ
- Webサーバー上で開発している人
- クラウド環境(AWS、Azure、GCPなど)で作業する人
- 複数のサーバーを管理している人
- ローカルPCのスペックが低く、リモートの高性能マシンを使いたい人
- IoTデバイスやRaspberry Piで開発している人
注意点
- 初回接続時、サーバー側に数百MBのデータがインストールされる
- サーバーのリソース(CPU、メモリ)を若干消費する
- ネットワーク接続が不安定だと作業に支障が出る
次のステップ
Remote-SSHに慣れたら、以下も試してみましょう:
- Remote – Containers: Docker環境に接続
- Remote – WSL: Windows上のLinux環境(WSL)に接続
- GitHub Codespaces: ブラウザだけでクラウド開発環境
VSCodeのRemote Development機能は、開発者の働き方を大きく変える可能性を秘めています。ぜひこの記事を参考に、快適なリモート開発環境を構築してください!
困ったときは、VSCodeの公式ドキュメントやコミュニティフォーラムも活用してみましょう。それでは、快適なリモート開発ライフを!

コメント