GNU/Linux >> Linux の 問題 >  >> Linux

SSH キーを VS Code に追加してホストに接続する方法

キー交換を使用して SSH 接続をセットアップするために VS Code に SSH キーを追加する必要がある場合は、このチュートリアルが役に立ちます。このチュートリアルでは、sudo を持つ両方のユーザーの鍵交換を介して SSH 経由で接続するように VS コードを構成する方法を段階的に学習します。 権利 (homelab ) と組み込みの root ユーザー。

読者ではありませんか?この関連するビデオ チュートリアルをご覧ください。 ビデオが表示されない場合広告ブロッカーが無効になっていることを確認してください。

前提条件

  • Windows 用の Visual Studio コード。このチュートリアルでは、バージョン 1.5.1.1 を使用します。
  • Windows 10 (SSH が必要で、プリインストールされています)
  • リモート SSH ホスト – このチュートリアルでは、SSH が有効になっている OpenSUSE ホストを使用します。
  • VS Code で SSH ホストをセットアップ済みであること (この記事を参照)。

SSH キーの作成

まず、Windows マシンで秘密および公開 SSH キーを生成する必要があります。

<オール>
  • ローカル コンピューターで PowerShell を開き、ssh-keygen を実行します .キーのデフォルト パスは C:\users\\.ssh です。
  • 秘密鍵と公開鍵を保存するフォルダー パスを指定します。デフォルトは C:\Users\\.ssh\id_rsa です .
  • オプションのパスフレーズを提供します。パスフレーズを指定すると、このパスフレーズを使用して秘密鍵が暗号化されます。
  • 完了すると、キーを保存したフォルダー id_rsa.pub に 2 つのファイル (キー) が作成されます。 (公開鍵) および id_rsa (秘密鍵)。デフォルトでは、これらのキーは C:\Users\\.ssh にあります。

    SSH ホストへの公開鍵のアップロードと SSH ユーザーの関連付け

    次に、公開鍵 (id_rsa.pub) を転送する必要があります リモート SSH ユーザーの許可されたキーの場所に。 VSCode を使用すると、組み込みのエクスプローラーを使用してキーをアップロードできます。

    関連:VS Code と SSH を使用した SSH キー交換接続の設定

    <オール>
  • VS Code で SSH ホストを既にセットアップしている場合は、ユーザーのホーム フォルダーを開きます。この場合、チュートリアルは homelab を使用しています。 ユーザー。
  • .ssh を作成します ホーム ディレクトリのフォルダに移動し、id_rsa.pub をアップロードします。 ファイル。
  • ファイル名を authorized_keys に変更します (小文字)。この例を以下に示します。
  • これで、公開鍵を SSH ユーザーに関連付けることができました。パスワードを必要とせずに再接続できるはずです。

    公開鍵とルート ユーザーの関連付け

    root に同じキーを関連付ける user は、通常のユーザーまたは組み込みの root のいずれかとして SSH 接続する機能を提供します ユーザー。

    root の場合 ユーザー ~/.ssh/authorized_keys をコピーします /root/.ssh/authorized_keys に .以下のコマンドを実行することで、これを行うことができます:

    sudo mkdir -p /root/.ssh && sudo cp ~/.ssh/authorized_keys /root/.ssh/authorized_keys
    

    キーを root に関連付ける ユーザーには sudo が必要です 管理者権限。 sudo の詳細については、こちらをご覧ください。

    これで、Windows でパスワードを要求することなく、SSH 経由で root ユーザーにログインできるはずです。

    YaST を使用して公開鍵を root ユーザーにグラフィカルに追加する

    視覚的に学習する方であれば、OpenSUSE の YaST 構成ユーティリティを使用して同じタスクを実行できます。これは、authorized_keys をコピーするのと機能的に同じです。

    YaST は、OpenSUSE ディストリビューションに固有の構成ツールです。

    関連記事:Linux 世界の Windows ガイ:YaST とデスクトップ

    <オール>
  • VS Code ターミナルに移動し、id_rsa.pub をアップロードします。 ホームディレクトリへのファイル:
  • 2. sudo yast を実行します VSCode ターミナルで。

    3. YaST に移動したら、[セキュリティとユーザー] —> [ユーザーとグループの管理] に移動します。 矢印キーを使用します。 Enter を押します ユーザーとグループの管理に入ります セクション。この手順により、YaST のユーザー管理画面が表示されます。

    4. Alt+S を押します YaST でフィルターを通常のユーザーからシステム ユーザーに変更します。

    5. root まで下に移動します . alt+i を押します 編集してから alt+s キーセクションに移動します。以下のアニメーションでそれを見ることができます:

    6. alt+a を押します id_rsa.pub に移動します 以前にアップロードしたファイルを開き、alt+o を押します OK . root ユーザーに指紋が追加されているはずです。

    7. alt+o を押し続けます [OK] でメニューを終了し、最後に alt+q やめること。以下のアニメーションでそれを見ることができます:

    この段階で、root の鍵交換に成功しました!アップロードされた /home//id_rsa.pub を削除します 必要に応じて、Linux ホストで。

    キーによる認証

    最後に、新しく作成したキーを使用して接続をテストする必要があります。そのためには:

    PowerShell コンソールを開き、ssh @ を実行してみてください ユーザーと root ユーザーの両方としてログインをテストします。このガイドでは homelab を使用しています ユーザーとして通常のユーザー。すべてがうまくいけば、すぐにいずれかのアカウントにログインできるはずです。これは以下で確認できます:

    root として SSH 接続できるようになり、ターミナルはパスワードを要求しませんでした。 SSH for Windows は秘密鍵を探す場所を知っていました (C:\users\\.ssh\id_rsa )、それを自動的に認証に使用しました。

    どちらかのユーザーを使用するように VS Code を構成する

    root の両方を使用してリモート SSH ホストに接続する必要がある場合はどうなりますか? ユーザーアカウントと標準の管理者ユーザー? VS Code で 2 つの異なる構成を使用して、このシナリオをセットアップできます。

    <オール>
  • VS Code で、リモート エクスプローラー をクリックします。 アイコンをクリックし、SSH ターゲット の下の歯車をクリックします 以下に示すように。
  • 2. VS Code は選択するファイルを要求します。 Enter キーを押して、この記事の前半で生成した既定のファイルを選択します。 VS Code は、以下に示すように、編集する構成ファイルを開きます。

    3. 構成の最初の 3 行をコピーし、空白行で区切って以下に貼り付けます。

    4. 2 番目のユーザーを から変更します (homelab 下のスクリーンショット) を root に .また、よりわかりやすい名前を付けてください (Host パラメーター) を使用して、2 つの構成を区別できるようにします。 Ctrl+s キーを押します 保存する:

    Host パラメータは、スペースと特殊文字に敏感です。ハイフンと英数字のみを使用してホストに名前を付けます。 Hostname IP または DNS 名と同等です。上記の例では、172.25.179.190 の IP を使用しています。

    (下のスクリーンショットで) 2 つの SSH ターゲットがあることがわかります:test-machine 、および test-machine-root .

    5. SSH ターゲットを右クリックし、[Connect to Host in Current Window] をクリックして、いずれかのホストに接続します。 以下に示すように。

    root として接続すると、保護されたファイルを含め、マシンへの完全なアクセス権が与えられます。

    新しいウィンドウでホストに接続する場合 、VSCode は新しい接続で別のインスタンスを起動します。これにより、両方の root を持つことができます と 2 つの別々のセッションで同時に開きます。どちらがどれであるかを混同しないでください!


    Linux
    1. SSHキーを設定する方法

    2. plinkとcmdと公開鍵を使用してsshサーバーに接続する方法

    3. SFTPを許可してSSHを禁止する方法は?

    1. Ubuntu18.04でSSHキーを設定する方法

    2. ~/.ssh/known_hosts ファイルの問題のあるキーを修正する方法

    3. ssh コマンドを使用してリモート ホストに接続する方法

    1. パスワードなしのSSHログインを設定する方法

    2. Windows10でSSHキーを生成する方法

    3. SSHコマンドとは何ですか?SSHを使用してリモートサーバーに接続する方法