Vscode はリモート開発に ssh を使用します (remote-ssh)

導入

Visual Studio Code リモート - SSH を介してリモート ホストや仮想マシンに接続し、リモート フォルダーを開いて、vscode のプラグインの利点をリモート開発やデバッグに使用できます。
ファイル

ステップ

1. 構成環境

Remote-ssh の ssh 接続は openssh に基づいて実装されており、後で git を使用して ssh キーを生成する必要があるため、以下を準備する必要があります。

  • OpenSSH
  • Git バージョン 1.9 以上

すでに上記の環境がインストールされている場合は、次のステップに進んでください。

1.gitのインストール

このブログを参照してください: Git の詳細なインストール チュートリアル (Git のインストール プロセスの各ステップの詳細な説明)
git のインストール プロセス中に、OpenSSH をバンドルする必要があるかどうかが表示され、自分の使用習慣に応じて選択できます。

2.OpenSSHのインストール

上で選択したバンドルは無視してください。

この Microsoft ドキュメントからインストールできます: OpenSSH のインストール
ただし、ここでも手順を繰り返します。

#用管理员身份运行PowerShell
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
# 安装OpenSSH客户端 (这里我们只需要客户端)
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

3. インストールの確認

正常にインストールされると、コンソールにインストールされているかどうかを確認できます

ギット
ファイル

ssh
ファイル

2.vscodeにリモートSSHプラグインを追加します

左側の列で拡張機能を選択し、リモート ssh を検索します。
次のようになります。インストールをクリックします。
ファイル

インストールが成功すると、左側の列にリモート接続アイコンが表示され、クリックして ssh の横にあるプラス記号を選択して接続します。
ファイル

3. 接続

接続を選択すると、次の内容が表示されます。Enter
ファイル
を押してssh 主机用户名@主机地址 -Aリモート ホストに接続します (入力は-A構成ファイルに生成されます。ForwardAgent yes目的は、ローカル コンピュータのキーを使用してログインすることであり、送信する必要はありません)このキーを要塞ホストに接続します) を構成に使用します。

このとき、右下に接続するか設定ファイルを開くかの選択肢が表示されるので、直接接続するか設定ファイルを開くことができます(初回のみどちらかを選択して生成するよう求められるようです)設定ファイル。すぐ下にある user/username/.ssh を直接選択します)

設定ファイルを開くと以下の内容が表示されます
ファイル

パスワード認証を選択

直接接続はありません。リモコンの横にある更新ボタンをクリックするだけです。
ホスト接続を選択し、プラットフォームを選択し、パスワードを入力すると、リモート ホストにリモート接続できます
(プラットフォームの選択が間違っている場合は、vscode 設定に入力してremote.SSH.remotePlatform変更できます)
ファイル

接続を選択すると、新しい空のウィンドウが生成され、いつでも左下隅を参照して接続ステータスを確認できます。
ファイル

接続が成功したら、リソース マネージャーでプロジェクト ファイルを開くことができます。
ファイル

ただし、パスワード認証を利用すると、接続するたびにパスワードを入力しなければならず非常に面倒ですが、sshキー認証を選択することで、何度もパスワードを入力する必要がなくなります。

SSHキー認証を選択します

1. ローカル端末でキーを生成します。


方法 1: 直接入力ssh-keygen、プログラムのガイダンスに従って選択する2 つの方法がここで提供されます。

ssh-keygen

方法 2: 事前にパラメータを指定します。git がインストールされていること、およびバージョンが 1.9 以降であることを確認してください。

# -t 加密类型 -b 指定指定要创建的密钥的位数
ssh-keygen -t rsa -b 4096

その他のパラメータ設定: oracle マニュアル ----ssh-keygen

ここでは 2 番目の例を示します。
デフォルトではパスワードは空ですが、パスワードを使用して秘密キー ファイルを保護することを選択できます。SSH プロトコルを使用してウェアハウスにアクセスするたびに秘密キー ファイルの保護に使用するパスワードを入力したくない場合は、キーの作成時に空のパスワードを入力できます。つまり、Enter キーを直接押します
ファイル

ここで秘密鍵は に保存され、C:\Users\20447/.ssh/id_rsa
公開鍵は に保存されます。C:\Users\20447/.ssh/id_rsa.pub

2. 公開キーをリモートホストにコピーしてインストールします。

公開キーをリモート ホスト上の ~/.ssh ファイルにコピーします。
ホストへの転送には FTP または SFTP を使用できますが、ここではファイル転送ツールとして FileZilla を使用します (FileZilla を使用してファイルを管理する必要がある場合は、一部のファイルが操作できないため、root ユーザーでログインすることをお勧めします)権限が不十分なため)
ファイル

リモートホスト側に公開鍵をインストールする

cd .ssh
cat id_rsa.pub >> authorized_keys #安装公钥

ファイル権限を設定してセキュリティを向上させる

chmod 600 authorized_keys  #所有者可读写
chmod 700 ~/.ssh           #所有者可读可写可执行

3. vscode に戻り、前の設定ファイルに追加します。SSH のIdentityFile $私钥路径$
横の設定を選択して、configファイルにすぐに移動します
ファイル

ファイル

保存して再接続した後は、常にパスワード認証を行う必要はありません。

4番目、設定ファイルについて

前述したように、remote-ssh は openssh プラグインに基づいているため、設定ファイルは openssh SSH 設定ファイル形式 (sshd_config) に従い、ssh 形式で設定できます。

ここでは、一般的に使用される構成形式のみをリストします。さらに知りたい場合、またはその他のニーズがある場合は、sshd_config(5) — Linux マニュアル ページを参照してください。

Host $远程主机名$   #可以自定义,目的是知道自己用什么主机
  HostName $远程主机IP$
  User $用户名$
  Port $ssh端口$   #不写默认22
  IdentityFile $本机SSH私钥路径$
  ForwardAgent yes $希望使用本地电脑里的密钥登录,且不想把这个密钥发送到堡垒机,之前添加 -A生成$

複数のホストに接続する必要がある場合は、設定ファイルに上記の設定に従ってこれを複数追加します

Host $远程主机名1$
  HostName $远程主机IP1$
...

Host $远程主机名2$
 HostName $远程主机IP2$
...

Host n...

5. プラグインをリモートホストにインストールします。

リモート ホストに接続した後、インストール ページでインストール場所をアクティブに選択できます。
ファイル

必要に応じて vscode のリモート ホストでプラグインをインストール、アンインストール、または無効にすることで、リモート開発が容易になります。
ファイル

6. 接続できない原因について

上記の操作で問題ないので、問題に関しては、エラーが発生した場合、opensshをキーワードとして検索を開始し、下隅の出力ウィンドウに注目して判断することをお勧めします。エラーの種類。
いくつかのエラーの問題。参考1詳細は以下で解決できます。

エラーの解決策は次のとおりです

  • 何らかの理由でシステムをリセットするか ssh をリセットしても接続できない場合は、
    元のホスト キーが現在のホスト キーと一致していないことが原因である可能性があります。
    c:\user\username.ssh 内のknown_hostsファイルを削除してみてください。
    この方法は少し乱暴ですが、新しい洞察があれば、コメント欄にメッセージを残してください。

7. その他の接続方法

ssh 接続方法に加えて、WSL、Dev Containers などの接続方法もあり、VS コードには拡張機能があり、独自の開発習慣をインストールして選択することができます
ファイル

参考:

1. VSCode はリモート SSH を使用してリモート サーバーに接続します
2.リモート開発に SSH を使用します

おすすめ

転載: blog.csdn.net/weixin_51278158/article/details/130186395