Vagrantを使った開発用仮想環境に、VSCodeのリモート開発でSSH接続するのに、Vagrantの秘密鍵を使用することができます。 この設定方法についてのメモ

Vagrantで使用されているSSH鍵の確認

Vagrantでは、仮想環境にアクセスするときに使用する秘密鍵の情報は、対象のVagrant用ディレクトリに移動して vagrant ssh-config コマンドを実行すると確認できます。 Windowsの場合、対象のVagrant用ディレクトリに移動して、コマンドを実行すると以下のようになります。

D:\> cd D:\vagrant\cento7
D:\vagrant\cento7> vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile D:/vagrant/centos7/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

Windows10の設定

Windows10の場合、ログインユーザーのホームディレクトリの、.sshディレクトリで作業します。 ユーザー名がmikanの場合、デフォルトのホームディレクトリは、以下になります。

C:\Users\mikan
この場合、対象ディレクトリは、以下になります。
C:\Users\mikan\.ssh

Vagrantの設定をコピーして設定する

VSCodeのリモート開発用設定の場合、vagrant ssh-config の情報を.ssh/configにコピーする方法があります。 vagrant ssh-configの出力が以下の場合、

D:\vagrant\cento7> vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile D:/vagrant/centos7/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL
このの設定を [ホームディレクトリ]\.ssh\config にコピーします。 その後、Hostの接続先名を分かりやすい名前などに変更します。
Host vrc7
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile D:/vagrant/centos7/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL
上記の変更箇所は、赤色の部分で、リモート接続するときに指定する接続先名になります。 上記では、"vrc7" にしています。