#はじめに
今日は、VSCodeで"Remote - SSH"拡張機能を試してみたいと思います。目標は、レンタルサーバーにSSH接続できるようになる事ですが、とりあえず今回は以前構築済みのCentOS8に接続できるところまで試したいと思います。
#環境周りの情報
SSH接続元:
- Windows10仮想マシン
- VSCodeインストール済み
※詳細は以前投稿した下記を参照して下さい
SSH接続先:
- CentOS8仮想マシン
- sshd設定済み
- 公開鍵認証設定済み
※以前投稿した下記を参考に設定しました
#環境構築手順
###"Remote - SSH"拡張機能のインストール
VSCodeに"Remote - SSH"拡張機能をインストールします。
左側タブで[拡張機能]タブに切り替え、"Remote"というキーワードで検索。すると、検索結果に"Remote - SSH"拡張機能が現れるので、[インストール]ボタンをクリック。
"Remote -SSH: Editing Configuration Files"拡張機能も合わせてインストールされます。これは後述の"Remote - SSH"拡張機能のConfig設定において、Configファイル編集時に入力補完してくれる役割を担ってくれます。
インストールが完了すると、左側タブに[リモート エクスプローラー]タブが出現します。
###"Remote - SSH"拡張機能のConfig設定
VSCodeの左側タブで[Remote- SSH]タブに切り替えてみると、こんな感じの画面。左下には、リモートマシン接続時に使うボタンが追加されています。SSH TARGETSにはまだリモートマシンが何も表示されていませんがご安心下さい。それをこれから設定していきますので。
それではConfigファイルを作成していきます。
まず、SSH TARGETSの横にある[⚙]ボタンをクリック。画面上部に表示される[Select SSH configuration file to update]から"C:\Users\{ユーザー名}\.ssh\config"を選択。
ファイル名を"config"以外にしたり、パスを別の場所にする事もできるようですが、そうするとVSCodeの"Remote.SSH: Config File"設定にConfigファイルの絶対パスを設定する必要があります。また、Configファイル編集時の入力補完が機能しなくなるようですのでご注意下さい。
すると、Configファイルのテンプレートが初期表示されます。
リモートホストにパスワード認証でSSH接続する場合はこの設定で十分かと思いますが、私の場合は公開鍵認証でSSH接続したいので、設定項目を追加してConfigファイルの編集を完成させます。ポート番号もデフォルトから変更している方は追加設定が必要です。
ターゲットが出現しました。今回、ターゲットの名前は"Test"にしましたが、名前はご自由にどうぞ。
一応、各設定項目の意味を載せておきます。
項目 | 意味 |
---|---|
Host | SSH TARGETSに表示される名前 |
HostName | SSH接続先のホスト名またはIPアドレス |
User | SSH接続に使用するユーザー名 |
Port | SSH接続に使用するポート番号 |
IdentityFile | SSH接続に使用する秘密鍵ファイルパス |
IdentityFile項目の設定ですが、私が試した限りでは絶対パスじゃないと繋がりませんでした。ファイル名だけや相対パスではエラーとなりました。
###リモート接続の確認
それでは接続できるか試してみます。
該当のSSH TARGET、今回は"Test"の右側にある[Connect to Host in New Window]ボタンをクリック。
すると、VSCodeが別ウィンドウで表示され、画面上部に[Select the platform of the remote host "Test"]が表示されるので、[Linux]を選択。
繋がらない・・・
[Learn More]ボタンをクリック。
ブラウザが起動し、このようなMicrosoftのVisual Studio Code公式サイトが表示されるので見てみたところ、どうやらOpenSSH compatible SSH clientをインストールしていないのが原因っぽい。今まではSSHクライアントソフトを別途インストールして使っていたので、こういうのはあんまり気にしていなかった。
[OpenSSH compatible SSH client]リンクをクリックしてみる。
私の環境の条件に合致するのは一番上なので、[Windows OpenSSH Client]リンクをクリック。
このような画面が表示されるので、記載されている手順に従ってOpenSSH Clinetだけインストール。私の場合、OpenSSH Serverは特に必要ないので。
インストールできたので、再度、接続できるか試してみます。
よし!一歩前進!フィンガープリントが表示されたので"Continue"を選択。
別ウィンドウでVSCodeが立ち上がり、ターミナルに接続先が表示され、無事つながりました!もう、別のSSHクライアントソフトは要らないですね。
#"Remote - SSH"拡張機能を少しだけ操作してみる
試しに、リモート側のVSCodeでHomeディレクトリを開いてみます。
まず、[フォルダを開く]ボタンをクリック。
すると、接続ユーザーのHomeディレクトリが既に入力された状態で表示されるので、[OK]ボタンをクリック。
信頼するかどうか聞かれるので、信頼するにすると、Homeディレクトリが表示されました。
これはもしやと思い、ローカル側VSCodeから適当なファイルをリモート側VSCodeにドラッグ&ドロップしてみたら、ファイルのアップロードが出来ました。もう、別のFTPクライアントソフトも要らないですね。いや〜、VSCode恐るべし・・・
#リモート接続の切断
リモート接続の切断は、リモート側VSCodeの左下の[><]みたいなボタンをクリックし、画面上部に表示されたメニューから[リモート接続を終了する]を選択。
ただ、これだとリモード側VSCodeのウィンドウが残ったままとなり、結局[×]ボタンをクリックする事になるので、最初から[×]ボタンをクリックして切断&ウィンドウ閉じるをした方が早いと思います。
お疲れ様でした!