VSCodeでSSH接続する方法|リモート開発の始め方を解説

VSCode

AWS(EC2)やさくらのVPS、ConoHa VPSといったクラウドサーバー、あるいは社内のLinuxサーバーを使って開発を行う際、「本番環境のファイルを書き換えるのが面倒」「ターミナルとエディタを何往復もして疲れる」と感じたことはありませんか?

これまでは、Tera TermやMacのターミナルでCUI(文字だけ)操作をしたり、FTPソフトでファイルをいちいちダウンロード・アップロードしたりするのが一般的でした。

しかし、VSCode(Visual Studio Code)の標準的な拡張機能を使えば、リモートサーバー上のファイルをローカルPCにあるファイルと全く同じ感覚で、GUI(画面操作)で直接編集・開発できるようになります。

本記事では、VSCodeを使ってリモートサーバーに安全にSSH接続し、爆速で快適な「リモート開発環境」を構築する手順を、初心者にも分かりやすく徹底解説します!

VSCodeでSSH接続すると何ができる?

まずは、VSCodeを使ったリモート開発の概要と、導入するメリットについて知っておきましょう。

SSH接続とは

SSH(Secure Shell)接続とは、ネットワークを介して離れた場所にあるサーバー(リモートサーバー)に安全にログインし、遠隔操作するための仕組みです。通信内容がすべて暗号化されるため、パスワードや機密情報が第三者に盗まれる心配がありません。

VSCodeでSSH接続するメリット

VSCodeにSSH接続の機能を組み込むと、以下のような絶大なメリットが得られます。

  • サーバー上のファイルを直接編集できる:
    サーバー内にあるソースコードをVSCodeで開き、使い慣れたショートカットキーやコード補完をそのまま使って書き換えることができます(FTPでのアップロード作業が不要になります)。
  • ターミナルもVSCode内で使える:
    パネル内にサーバーのLinuxターミナルがそのまま起動するため、コマンド実行とコード編集を一画面で完結させられます。
  • ローカルと同じ操作感で開発できる:
    サーバー側で行われている処理を意識することなく、自分のPCの中にあるファイルを触っているかのような錯覚に陥るほどスムーズに動きます。

SSH接続に必要なもの

 スムーズに設定を進めるために、以下の準備物が揃っているか確認してください。

  • VSCode(ローカルPCにインストール済みであること)
  • SSH接続先(VPS、AWS EC2、オンプレミスのLinuxサーバーなど)
  • SSHアカウント情報(接続先のIPアドレス、ユーザー名、パスワードなど)
  • SSH鍵(秘密鍵)(※鍵認証を設定している場合。一般的には id_rsa などのファイル)

Remote – SSH拡張機能をインストールする

VSCodeでリモート開発を行うには、Microsoft公式が提供している拡張機能を導入します。

拡張機能を検索する

  1. VSCodeを開き、画面左側にあるブロックのような形をした「拡張機能」アイコンをクリックします。(またはCmd + Shift + X / Ctrl + Shift + X)。
  2. 上部の検索バーにRemote – SSHと入力します。

インストールする

検索結果の一番上に表示される、Microsoft公式のRemote – SSHという拡張機能の「インストール」ボタンをクリックします。

数秒でインストールが完了すると、VSCodeの左下の隅に ><(緑色、または青色のインジケーター)のような「リモートウィンドウを開く」アイコンが表示されます。

VSCodeでSSH接続する方法

準備が整ったら、実際に接続設定を行いましょう。もっとも管理が楽な「SSH Configファイル」を利用した方法を解説します。

SSH接続先を登録する

  1. VSCodeの左下にある >< アイコンをクリックします。
  2. 画面上部に出てくるメニューから「ホストに接続する… (Connect to Host…)」 を選択し、次に 「新規SSHホストを追加する… (Add New SSH Host…)」 を選択します。
  3. 接続コマンドを入力する欄が出てくるので、以下のように入力してEnterを押します。
ssh ユーザー名@サーバーのIPアドレス -i 秘密鍵のパス
(例:ssh root@192.168.11.10 -i ~/.ssh/my-key.pem)

※パスワード認証の場合は -i 秘密鍵のパス は不要です。

SSH Configを設定する

コマンドを入力すると、「保存先の構成ファイル(Config)を選択してください」と聞かれます。通常は一番上にあるユーザーディレクトリの設定ファイル(例:/Users/ユーザー名/.ssh/confing)を選択します。

自動生成された config ファイルの中身は、手動で以下のように書き換えて管理することも可能です。一度設定しておけば、次回からサーバー名を選択するだけで接続できます。

Host my-vps-server
    HostName 192.168.11.10
    User root
    IdentityFile ~/.ssh/my-key.pem

サーバーへ接続する

  1. 再び左下の><アイコンを押し、「ホストに接続する…」を選択します。
  2. 先ほど登録したホスト名(例:my-vps-server)がリストに表示されているので、クリックします。
  3. 新しいVSCodeのウィンドウが立ち上がります。初回接続時は「プラットフォームの選択(Linux / Windows / macOS)」や「続行しますか?(Continue)」というセキュリティの確認が出るので、接続先サーバーに合わせて選択し、進めてください(パスワード入力を求められた場合は、サーバーのパスワードを入力します)。

左下のアイコンの表示がSSH:ホスト名に変われば、接続完了です!

接続後にできること

無事に接続できたら、VSCodeのパワーをフルに活かして開発を進めましょう。

ファイルを編集する

メニューの「エクスプローラー」から「フォルダーを開く」をクリックすると、サーバー内のフォルダ階層(/var/wwwなど)がそのまま表示されます。
ファイルを選択してコードを書き換え、Cmd + S / Ctrl + Sで保存すれば、リアルタイムにサーバー上のファイルが更新されます。

ターミナルを利用する

メニューの「ターミナル」>「新しいターミナル」を開くと、画面下部にサーバーのシェル(Bashなど)が直接立ち上がります。
そのままnpm run devやdocker-compose upなどのコマンドを実行し、アプリを起動したりログを確認したりできます。

拡張機能を利用する

拡張機能タブを開くと、サーバー側(SSH: ホスト名)にインストールする拡張機能を選べます。Gitの履歴を見やすくするGitLensや、各種言語の保管プラグインをサーバー側にも入れることで、ローカルと全く同じ快適さを維持できます。

SSH接続できないときの対処法

Remote – SSHのセットアップ時によくあるエラーと、そのチェックポイントをまとめました。

Permission deniedが表示される

  • 原因:ユーザー名、パスワード、または秘密鍵(パス)のいずれかが間違っているか、鍵の権限が緩すぎます。
  • 解決策:Configファイル内の User や IdentityFile の記述が正しいか再確認してください。また、MacやLinux環境の場合、秘密鍵のパーミッション(権限)が広すぎると接続を拒否されるため、ターミナルで chmod 600 ~/ .ssh/my-key.pem を実行して権限を絞ってください。

Hostが見つからない / Could not resolve hostname

  • 原因:サーバーのIPアドレスやドメイン名が間違っているか、ローカルPCのネットワークが繋がっていません。
  • 解決策:Configの HostName に記述したIPアドレスにタイポ(打ち間違い)がないか確認してください。

タイムアウトになる(Timeout)

  • 原因:サーバー側のファイヤーウォール(セキュリティグループなど)で、22万ポート(SSH)からの接続が許可されていません・
  • 解決策:クラウドVPSやAWSの管理画面を開き、自分の自宅のIPアドレスからの「SSH接続(22番ポート)」が許可(インバウンドルール設定)されているか確認してください。

Remote – SSHが接続できない(ループする)

  • 原因:接続先サーバーの空き容量が不足しているか、VSCodegがサーバー側にセットアップする内部プロセス(VSCode Server)がクラッシュしています。
  • 解決策:一度サーバーに通常のターミナルからログインし、ディスク容量(df -h)を確認してください。また、VSCode上で Cmd + Shift + P から「Remote-SSH: Kill VSCode Server on Host. . .」を実行して、サーバー側のプロセスを一度リセットするのも効果的です。

ローカル開発とリモート開発の違い

最後に、自分のPC(ローカル)で開発する場合と、今回のリモート開発(サーバー)の違いを整理しておきましょう。

項目ローカル開発リモート開発
実行環境(CPU・メモリ)自分のPCリモートサーバー
ファイルの保存場所自分のPCの中サーバーのストレージ上
主な用途基礎学習・個人の軽い練習実務の本番/ステージング環境、チーム開発、重い機械学習など
メリットネット環境がなくても動くPCのスペックに依存せず、本番と全く同じ環境でテストできる

まとめ

VSCodeの「Remote – SSH」を活用したリモート開発についてのまとめです。

  • VSCodeならRemote – SSHで簡単に接続できる:拡張機能を入れてConfigを設定するだけで、安全かつ一瞬で接続環境が作れます。
  • リモートサーバーをローカル感覚で操作できる:ファイルの直接編集、内蔵ターミナルの活用により、FTPや黒い画面だけの操作から完全に解放されます。
  • エラー時はSSH設定や認証情報を確認する:繋がらない場合は、まずIPアドレス、秘密鍵のパス・権限、ポートの開放状態を落ち着いてチェックしましょう。

一度この快適な環境を構築してしまえば、サーバー開発のスピードと快適性は劇的に向上します。ぜひ本記事を参考に、VSCodeを使った一歩先のスマートなリモート開発を体験してみてください!

タイトルとURLをコピーしました