Windows10からVisual Studio Codeを使ってUbuntuのディレクトリを見る

Win10でVisual Studio CodeでUbuntuのパソコンをSSHでリモートするときの設定のメモ

  • 自分が分かりやすいようにまとめた

これを見てやった(内容は同じ)

https://blog.masahiko.info/entry/2019/06/15/202003

環境

手順

VSCodeの設定

ローカル環境上のVSCodeに拡張機能でRemote Developmentをインストール

WindowsでのSSHの設定

  • Windows PowerShellを管理者権限で実行
    (スタート>Windows Powershellを検索し右クリックしたときに表示される管理者権限で実行をクリック)

  • ディレクトリを移動

    PS C:\WINDOWS\system32> cd ~\.ssh  
  • SSHの鍵を生成

    ssh-keygen -t rsa -b 4096  
    • 鍵を保存するファイルはデフォルトの (~/.ssh/id_rsa )のまま
    • 上書き(Overwrite)と出た場合はCtrl-Cで終了(※上書きするのは不味いらしい)
    • パスフレーズ(passphrase)は何か入力したほうがいい(VSCodeの接続時に使います)
  • リモートコンピューターへのSSH公開鍵(id_rsa.pub)のアップロード
    以下のコマンドを入力

    $UserAtRemoteHost = "aaaaa@111.111.111.111"  
    • aaaaa@111.111.111.111 は<リモート先のuser名>@<リモート先のホスト名>を入力してください
      $LocalSourcePublicKey = $env:UserProfile + "\.ssh\id_rsa.pub"  
      $RemoteTargetPublicKey = $UserAtRemoteHost + ":~/tmp.pub"  
      scp $LocalSourcePublicKey $RemoteTargetPublicKey  
    • リモート先のPCのログインパスワードを要求されるので入力
      `
      ssh $UserAtRemoteHost "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"

SSH構成ファイルで接続先ホストの指定

  • VSCode上で[F1]キーを押すか,左下の[管理](歯車)タブ-[コマンド パレット]でコマンドパレットを出して"remote-ssh"と入力
  • リストに出る[Remote-SSH: connect to Host...],[Cofigure SSH Hosts...],[~/.ssh/config]の順にクリック
  • 開いたファイルに以下の内容を追記
    Host aaaaa@111.111.111.111  
      HostName 111.111.111.111  
      User aaaaa  
      IdentityFile ~/.ssh/id_rsa  
    • aaaaaはリモート先のユーザー名,111.111.111.111はリモート先のホスト名に変える

Remote SSHの設定

  • VSCodeのメニューバーの[ファイル]-[基本設定]-[設定]から[設定]ページを開く
  • [設定の検索]欄に「remote ssh」と入力
  • 左側のツリーから[拡張機能]-[Remote - SSH]を選択して
  • 右側の設定内容にある[Remote.SSH: Show Login Terminal]にチェックを入れる

接続の仕方

  • VSCode上で[F1]キーを押すか,左下の[管理](歯車)タブ-[コマンド パレット]でコマンドパレットを出して"remote-ssh"と入力
  • [Remote-SSH: connect to Host...]をクリック
  • Host管理名(この記事の場合は [aaaaa@111.111.111.111])をクリック
  • 新しい[ターミナル]ウィンドウが立ち上がり(上記のRemote SSHの設定をしないと立ち上がらない),公開鍵作成時に入力したパスフレーズ(passphrase)を入力(毎回入力する必要あり)

接続できたらリモート先のディレクトリが見れるようになります