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

Windows ターミナルでタブ プロファイルを設定して、Linux ボックスに自動的に SSH 接続する方法

これで、Windows ターミナルがインストールされたことを願っています。そうでない場合は、それを行ってください、私は待ちます。時間です。

設定をカスタマイズすることもできます。数バージョン前にターミナルを試して、まだ元に戻していない場合は、Windows ターミナルで新しいプロファイル .json (設定ファイル) を新しく生成することもできます。あなたのものをゼロアウト/削除しても構いません。 Windows ターミナルは、次回の起動時に再生成します。

ターミナルのドロップダウンには多くのものがあります。こんな感じです。

ただし、定期的に使用する Linux マシンに ssh 接続するプロファイルを作成できるようにしたいと考えています。おそらく、これらのリモート マシンには独自のクールなメニュー項目があるのではないでしょうか?それがどのように見えるか、どのように行うか見てみましょう。

Windows ターミナルに新しいプロファイルを追加する

Windows ターミナルのトップ タブ バーの下向き矢印をクリックします。優れた便利な設定がたくさんあるので、設定スキーマを調べてください。設定を編集するときは、Visual Studio Code が .json ファイルの既定のハンドラーとして設定されていることを確認してください。 Windows ターミナル設定の profile.json には JSON スキーマが含まれており、設定にオートコンプリート/インテリセンスを含める必要があるため、これは重要です。これにより、新しい設定の作成と発見が容易になります。

「profiles」配列にプロファイルを追加します。開始して学習するには、可能な限り単純なプロファイルを追加しましょう! { } をより大きなプロファイル [] の配列項目として追加し、それに名前を付けているだけです。

"profiles": [
{
"name": "This is a name"
},

これにより、Windows ターミナルに同じ名前の新しいメニュー項目が作成されます。アイコンはなく、デフォルトのシェルとして cmd.exe を起動します。これは、他のコマンド ラインを設定していないためです。プロファイル配列の一番上 (最初の) 項目に追加すると、メニューの最初にも表示され、ホットキー Ctrl+Shift+1 が表示されます。

これではだめなので、さらに追加しましょう。 tabTitle を追加します と commandline .

    {
"name": "This is a name",
"tabTitle": "This is a tab title",
"commandline": "powershell"
},

このメニュー項目は、メニューでは「This is a name」として表示されますが、タブは「This is a tab title」と呼ばれます。これにより、powershell が起動します。 .exe を含めることはできますが、含めなかったことに注意してください。 Windows ターミナルは基本的に Process.Start と呼ばれるだけであることを明確にしたかったので、プロファイル タブを設定して PATH 内の任意のものを呼び出すか、明示的に指定できます。 「startingDirectory」を追加することもできます " およびその他のオプションが多数あります。

PATH で何でも呼び出すことができるので、他に何ができるでしょうか?

Windows での OpenSSH の使用

聞いたことがないかもしれませんが、OpenSSH が Windows に搭載されてから数年が経ちました。これは、Putty をインストールした可能性のある多くのユーティリティが Windows で既に利用可能であることを意味します。管理 PowerShell を開き、1 つのコマンドを実行して、OpenSSH のクライアント アプリがそこにあることを確認できます。

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

これによりクライアントがインストールされますが、必要に応じてオプションのサーバーもあります。

<ブロック引用>

私はクライアントだけに集中するつもりです。 Windows ではなく Linux から SSH 接続を行いたい場合は、次の領域に進んでください。

c:\windows\System32\OpenSSH にインストールされているものは次のとおりです

ここには、sftp、scp、そして最も重要な ssh.exe と ssh-agent があります。 ssh は、Windows と共にインストールされたときに PATH にあるため、Windows ターミナル プロファイルを次のように変更して、Raspberry Pi 4 にログインできます。

{
"name": "ssh hanselPi4",
"tabTitle": "HanselPi4",
"commandline": "ssh pi@hanselpi4"
},

このスクリーンショットでは、ssh 接続が上部にリストされていることに注意してください。これをクリックすると、ssh.exe が開き、パスワードの入力を求められます。私のシステムには、自動ログインを有効にする ssh キーがないため、パスワードが必要です。

Windows ターミナル プロファイルからの Linux マシンへの自動 SSH 接続/ログイン

ここが重要なので注意してください。マシンに WSL または WSL が既にある場合は、お好みの Linux ディストリビューションに含まれている SSH キーとユーティリティを使用できます。

その場合、Windows ターミナル プロファイルのコマンド ラインは次のようになります。

wsl ssh pi@hanselpi4

または、特定のディストリビューションが必要な場合は、ディストリビューションを起動してそこから ssh できます。

wsl -d Ubuntu-18.04 ssh pi@hanselpi4

Linux を知っている場合は、公開鍵を設定してこれを許可する方法に精通しています。ただし、ほとんどの人は、Windows でこれを行うには Putty またはサードパーティ製のツールが必要だと考えているため、ここではその方法に焦点を当てます。

Windows マシンから「ssh pi@hanselpi4」と入力して、自動的にログインできるようにしたいと考えています。より具体的には、プロファイルをクリックして、そのまま動作させたいと考えています。

します

  • Windows マシンでキーを作成します。 FROM マシン (この場合は Windows)。次に、ここからリモートの Linux マシンに SSH で接続します。
  • 私の鍵の公開部分について (それを転送することによって) Linux マシンに伝え、それを特定のユーザーの allowed_keys に追加します。

Windows のコマンド ラインから ssh-keygen を実行してキーを作成します。 Enterキーを押して生成しましたが、必要に応じて独自のファイル名を作成できます。完全なパスを使用して、どこにあるかを追跡してください.通常はデフォルトが最適です。

>ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\scott/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in hanselpi4.
Your public key has been saved in hanselpi4.pub.

パスが c:\users\yourname であることを忘れないでください。これは Windows の ~ ホーム フォルダーに相当し、キーは c:\users\yourname\.ssh にあるためです。

ここで、id_rsa.pub の内容を Raspberry Pi に転送したいと思います。必要に応じて scp (安全なコピー) を使用できますが、キーを追加することをお勧めします。 宛先マシンのauthorized_keysファイルに。

<ブロック引用>

注:私はそのテキスト ファイルを入力し (Linux では cat は Windows ではタイプです)、それを SSH にパイプします。そこで、ユーザー pi でそのリモート マシンにログインし、次に cat (Linux 側で)> を追加します。> そのテキストを .ssh/authorized_keys フォルダーにコピーします。 ~ フォルダーが暗示されていますが、必要に応じて追加できます。

Windows でこのコマンドを 1 回実行してキーを出力し、それをリモート Linux マシンの適切なファイルにパイプして追加します。一度パスワードの入力を求められます。

type c:\users\scott\.ssh\id_rsa.pub | ssh pi@hanselpi4 'cat >> .ssh/authorized_keys'

上記の行で何が起こっているかを理解してください。

プロフィール アイコンの追加 - ラズベリーが一番上

この時点で、Windows ターミナルのメニュー項目をクリックすると、リモート ターミナルに自動的に ssh/ログインすることができます。しかし、残念なことに、Terminal メニュー項目にはアイコンがありません。これは明らかに受け入れがたいことです。素敵な 32x32 の Raspberry Pi アイコンを入手して、どこかに置きます。 Dropbox や OneDrive に保存して、どこにいても利用できるようにすることもできます。

現在、私のプロフィールは次のようになっています:

"profiles": [
{
"name": "ssh hanselPi4",
"tabTitle": "HanselPi4",
"commandline": "ssh pi@hanselpi4",
"icon": "c:/users/scott/downloads/icons8-raspberry-pi-32.png"
},

これはなんて素敵なの?

見栄えがよく、タイトルとアイコンがきれいで、ホットキーを使用してリモート マシンに自動的に SSH で接続できます。

最後に、Windows ターミナルには既に Azure Cloud Shell があります (ブラウザーで http://shell.azure.com に無料でアクセスでき、永続的なクラウド ドライブを使用していつでもどこでも無料の Linux コンテナーにアクセスできます)。 ) ですが、この投稿の手順に従って、どこにでもワンクリック SSH をセットアップできるようになりました。

これがお役に立てば幸いです!

スポンサー: 今週のスポンサーは…私です!このブログと私のポッドキャストは、18 年以上愛され続けてきました。あなたのスポンサーシップは、ホスティングの請求書の両方を支払い、レビュー用のガジェットを購入し、時折タコスを購入することを可能にします。参加してください!


Linux
  1. Linux で Windows のタイトルを設定する方法

  2. Linux サーバーから Windows クライアントに SCP する方法

  3. Linux ボックスから Windows とインターネットを共有するにはどうすればよいですか?

  1. LinuxでカスタムSSH警告バナーまたはMOTDを設定する方法

  2. Linux コマンドラインまたはターミナルでプロキシ設定を設定する方法

  3. Linuxボックスを使用してssh経由でWindowsリモートデスクトップをトンネリングする方法は?

  1. LinuxでブラウザプロファイルをTmpfs(RAM)に同期する方法

  2. LinuxでWindows95を実行する方法

  3. Linuxで特定のディレクトリにSSHで接続する方法