N予備校の入門編で建てたvagrantインスタンスにvscodeのターミナルからssh接続する


N予備校「【2020年度】プログラミング入門 Webアプリ:第2章 02.LinuxというOS」の設定を完了した状態で
vscodeのターミナルからssh接続するために行った設定の備忘録。

※上記のテキストの通りにVagrantとVMを立ち上げている前提で書いています。

目次

  1. vscodeのターミナルを表示してvagrantを起動する
  2. VMのIPアドレスを調べる
  3. ssh接続のconfigファイルを作成する
  4. configファイルの権限を変更する

1. vscodeのターミナルを表示してvagrantを起動する

vscodeを管理者で起動してctrl + @でターミナルを表示、powershellが選択されていることを確認して
ターミナルで以下のコマンドを実行

cd ~/vagrant/ubuntu64_18/
vagrant up

2. VM のIPアドレスを調べる

ssh接続するためにIPアドレスを調べる
ターミナルでipconfigを実行し、VirtualBox Host-OnlyというアダプターのIPv4アドレスをメモ。

3. ssh接続のconfigファイルを作成する

ターミナルで以下のコマンドを実行して
vagrantのssh設定情報をconfigファイルに追記。ファイルがない場合は新規作成される。

vagrant ssh-config --host "2で調べたIPアドレス" >> ~/.ssh/config

4. configファイルの権限を変更する

win10 1904以降の問題なのか、private_keyファイルとconfigファイルのアクセス権限設定が異なっていると
"Bad owner or permissions on"のようなエラーが出て接続に失敗するためconfigファイルの権限を変更する。

vagrantインスタンスのkeyファイルの権限を確認する

ターミナルで以下のコマンドを実行してprivate_keyファイルのディレクトリを開く

invoke-item ~/vagrant/ubuntu64_18/.vagrant/machines/default/virtualbox/

private_keyファイルを右クリックプロパティ - セキュリティ - 詳細設定を開いておく。

configファイルの権限を変更する

ターミナルで以下のコマンドを実行してconfigファイルを作成したディレクトリを開く

invoke-item ~/.ssh/

configファイルを右クリックプロパティ - セキュリティ - 詳細設定を開く

先ほど開いたprivate_keyのアクセス許可エントリと内容が同じならどちらのプロパティ画面も閉じてしまってOK
異なっている場合はconfigのアクセス許可エントリをprivate_keyの設定に合わせてから閉じる。

アクセス許可されているユーザーやグループを削除する際に「親からアクセス許可を継承~」のようなエラーが出た
場合は左下の【継承の無効化】というボタンをクリック、表示されたダイアログの【継承されたアクセス許可を~】
を選択すれば削除できるようになる。

5. 接続

ターミナルで以下のコマンドを実行

ssh "2で調べたIPアドレス"

これでssh接続できるはず。
できなかった場合、私にはサッパリわからないので頑張って調べてください。