はじめに
やりたいこと
1. お手軽なVPNサービス「Tailscale」を使って、
2. Visual Studio CodeのRemote SSHで簡単にSSH接続します
具体的な手順
今回はUbuntuサーバーを設定し(WSLでも可)、MacやWindowsからサーバーにSSH接続します。
以下の手順で進めていきます。
1. Tailscaleのインストール
2. Ubuntuサーバーの構築
3. 公開鍵・秘密鍵の設定
4. VSCodeの設定
1. Tailscaleのインストール
こちらは公式ドキュメントを参照しながら進めていきます。
https://tailscale.com/download
インストールを完了すると登録されたデバイスはTailscaleの管理画面で以下のように確認することができます。
2. Ubuntuサーバーの構築
Ubuntuではopenssh-serverパッケージをインストールするだけです。
1. OpenSSHサーバーをインストールします
sudo apt install -y openssh-server
2. SSHを始動させます
sudo systemctl start ssh
3. SSHを自動起動に設定します
sudo systemctl enable ssh
公開鍵・秘密鍵の設定
クライアント側
まずは、クライアント側で公開鍵・秘密鍵を作成していきます。
MacとWindowsに分けて説明します。
Windows
1. Windows Powershellを起動します
2. ls
で「.ssh」ディレクトリがあることを確認し、なければmkdir .ssh
で作成します
3. ssh-keygen -t ed25519 -f .ssh/任意の名前
※後工程、秘密鍵のパスを使用することになり、.ssh/任意の名前
を秘密鍵のパスとします
4. パスワードを設定します
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
5. 鍵ペアの生成場所は「C:\Users\【ユーザー名】.ssh」内となります
6. 「C:\Users\【ユーザー名】.ssh」内の.pub
データをVSCodeあるいはテキストエディタで開きます
※.pub
データの文字列が公開鍵とります。
Mac
1. ターミナルを起動します
2. ls -a
で「.ssh」ディレクトリがあることを確認し、なければmkdir .ssh
で作成します
3. ssh-keygen -t ed25519 -f .ssh/任意の名前
※後工程、鍵のパスをしようすることになり、.ssh/任意の名前
を鍵のパスとします
4. パスワードを設定します
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
5. 「.ssh」ディレクトリに任意の名前
(秘密鍵)と任意の名前.pub
(公開鍵)が生成されていることを確認します
6. .pub
データをVSCodeあるいはテキストエディタで開きます
※.pub
データの文字列が公開鍵とります。
サーバー側
クライアント側で作成した公開鍵を登録します。
1. サーバー側の「.ssh」内に「authorized_keys」ファイルを作成します
※「.ssh」ディレクトリがなければ、mkdir .ssh
で作成し、空の「authorized_keys」ファイルを作成します。
2. 「authorized_keys」ファイルをテキストエディタなどで開き、公開鍵(.pub
ファイル)の中身をコピペします
※あるいはecho "<公開鍵の中身>" >> ~/.ssh/authorized_keys
を実行する。
3. chmod 600 ~/.ssh/authorized_keys
でファイルのパーミッション(権限)を変更します(初回のみ)。
テストでSSH接続
上記の設定でSSH接続が完了しました。
ちゃんとSSH接続ができるか確認してみます。
1. ssh -i <秘密鍵のパス> <接続先ユーザー名>@<接続先ホスト名 or IPアドレス>
でSSH接続します
※<接続先ユーザー名>はUbuntuのユーザー名です。
※<接続先ホスト名 or IPアドレス>はTailscaleの管理者画面のADDRESSESで確認できます。
2. 接続先のサーバーのパスワードを入力します
3. yesを入力します(初回のみ)
4. 接続を確認して、exit
コマンドを実行し、ログアウトします
VSCodeの設定
sshコマンドを短縮する(エイリアス定義)ための設定をしていきます。
1. VSCodeの拡張機能である「Remote SSH」をインストールします
2. クライアントの「.ssh」ディレクトリをVSCodeで開いて、「.ssh/config」ファイルを作成します
3. configファイル内に以下のコードを記載します
※<接続先エイリアス名>はわかりやすい名前をつけます
Host <接続先エイリアス名>
HostName <接続先ホスト名 or IPアドレス>
User <接続先ユーザー名>
IdentityFile ~/.ssh/<秘密鍵名>
4. VSCodeのリモートエクスプローラーからSSH接続します

5. SSHキーのパスワードを求められるため、「秘密鍵・公開鍵の設定」の項目で設定したパスワードを入力します
これでサクッとSSH接続ができました!