LoginSignup
5
3

Tailscale(VPN)で外部ネットワークから秘密鍵公開鍵なしでVSCode Remote SSH

Last updated at Posted at 2024-03-07

TailscaleというVPNサービスを使って、秘密鍵・公開鍵なしで、VSCode Remote SSHする方法を備忘録がてら書きます。

はじめに

プログラマなら誰しも、出先から自宅にある強強PCにアクセスしたくなった経験があると思います。
そこで、RealVNCやらChromeリモートデスクトップやらを使ってみて、外部から画面をいじれるけど、動きがカクカクしてイライラした経験はないでしょうか?

本記事では、新しいサービスであるTailscaleというVPNサービスとVSCode Remote SSHすることでそのような問題に対処します。
:warning:リモートデスクトップやVNCのように画面を乗っ取るのではなく、sshで計算環境のみにアクセスする方法について書きます。また、私はネットワークに疎いので、用語の使い方等がおかしいかもしれません。)

Tailscaleが100台まで無料で使えますので、個人利用の方は無料で使用可能だと思います。

言葉の定義

  • ホストPC:sshで繋がれる(操作される)PC、強いPCを想定(受け)
  • クライアントPC:VSCode Remote SSHを用いて接続を行うPC、ノートPCを想定(攻め)

既存研究

↑こちらは秘密鍵・公開鍵を使用した方法です。
提案手法の方が楽だと思います。

大まかな手順

  1. クライアントPCのブラウザでTailscaleにアクセス
    1. アカウントを作成(email, Google, Microsoft, Github等の選択肢がある)
    2. Tailscaleをダウンロード
  2. ホストPCでも1.と同様のことをする
  3. クライアントPCからホストPCに接続
    1. クライアントPCのブラウザで開かれたTailscaleの確認
    2. .ssh/config の記述
    3. VSCodeの設定と接続

1. クライアントPCのブラウザでTailscaleにアクセス

1.1. アカウントを作成

Get Startedからアカウントを作成します。

メールアドレス、Google, Microsoft, Githubなどの選択肢があります。
多分どれでも良いです。

image.png

1.2. Tailscaleをダウンロード

OSに合わせて、ダウンロードしてください。

image.png

↓のようになればOKです。
image.png
ホストPCに100.x.y.zのIPアドレスが発行されています。

2. ホストPCでも1.と同様のことをする

ここでは、Ubuntuにインストールします。

1.1と同じアカウントでログインすると、ホストPCのブラウザで開かれたTailscaleはこのようになっているはずです。

image.png

コマンドをterminalで実行してください。
実行結果に
sudo tailscale up
を実行しろとあるなら、実行してください。

その結果、ホストPCのブラウザで開かれたTailscaleはこのようになっているはずです。

image.png

3. クライアントPCからホストPCに接続

3.1 クライアントPCのブラウザで開かれたTailscaleの確認

クライアントPCからTailscaleを開くと次のような画面になっているはずです。
image.png

3.2 .ssh/config の記述

.ssh/config (無ければ作成)に次の内容を記述する。
ここで、.ssh/config はosごとに適切な場所に作成してください。

  • Mac, Linux: ~/.ssh/config
  • Win: Users/{ユーザー名}/.ssh/config
  • etc
Host {ホストPCの名前を好きに書く。例)HostPC}
  HostName {ホストPCのIPアドレス(100.x.y.z);上の画像からコピペすれば良い}
  User {ホストPCで使用するユーザー名(パソコン起動した時に選択するユーザー)}

{}内は適切に記述する。記述例↓

Host StrongHostPC
  HostName 100.12.345.67
  User OneOfUser

3.3 VSCodeの設定と接続

3.3.1 VSCodeにRemote - SSHの拡張機能をインストール

VSCodeの拡張機能でRemote - SSHを検索してインストールする。

3.3.2 接続

左の窓にリモートエクスプローラーが生えているはず。
そこを開いて、ホストPCの名前をクリックする。
ホストPCでのユーザーのパスワードを入力する。

:warning:ホストPCがMacである場合に、sshできない可能性があります。
このときは、リモートコンピュータにMacへのアクセスを許可するMacでリモートログインを設定するを参考に、外部からMacにアクセスできるように設定してください。

これで、VSCodeだけは、ホストPC(強いPC)になったかのように使用できます。

注意点

深層学習の訓練等の時間がかかる計算を行うときは、nohupコマンドを使用してください。
なぜならば、sshの接続が切れる(電波が無くなる)と計算が終了してしまうからです。
nohupコマンドを使用すれば、そのようなことが起こらないので、安心して使用することができます。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3