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

Linux または Windows または任意の場所から Windows 10 マシンに SSH 接続する方法

私は最近、いたるところで黙っています。 Windows 10 が何年もの間出荷してきた組み込みの OpenSSH クライアントを使用して、Windows から Linux に SSH 接続します。;) Windows で SSH を使用するために Putty は必要ありません (それで満足しない限りは、Putty を使用してください)。

Windows への OpenSSH サーバーの追加

管理 PowerShell から、有効にした OpenSSH の内容を確認できます。スタート メニューから「Windows の機能」と入力して、これを行うこともできます。

> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Name : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

私はOpenSSHクライアントのものを持っているようですが、サーバーは持っていないようです。 Windows から SSH できますが、できません。

最後に、非常に変人だが明らかに必要なバージョンのものを使用して、同様のコマンドでそれを追加します:

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

Windows as a Service での SSHD の開始

これが完了したら (もちろん、OpenSSH.Client を使用してこれを実行し、まだ実行していない場合は両側を取得することもできます)、これを使用して SSH サーバーを (Windows サービスとして) 開始し、実行されていることを確認します。

Start-Service sshd
Get-Service sshd

これは Windows サービスであるため、services.msc で「OpenSSH SSH サーバー」として表示され、必要に応じてスタートアップ時に自動的に開始するように設定できます。必要に応じて、PowerShell からもう一度行うことができます

Set-Service -Name sshd -StartupType 'Automatic'

ポート 22 経由で SSH を使用するため、この時点でファイアウォール ルールが 22 で受信されることに注意してください。セキュリティを意識するかどうかはあなた次第です。公開鍵 (パスワードなし) を使用した Windows マシンへの SSH のみを許可するか、気にしないかもしれません。注意してください、それは私ではなくあなたにあります。

これで、任意の Linux (または Windows) マシンから、プロのように Windows マシンに SSH で接続できます。注:.local ドメイン サフィックスを使用して、VPN でマシンを取得しないようにしています (ローカル サブネットにとどまります)

$ ssh [email protected]
Microsoft Windows [Version 10.0.19041.113]
(c) 2020 Microsoft Corporation. All rights reserved.

scott@IRONHEART C:\Users\scott>pwsh
PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

Loading personal and system profiles took 1385ms.
⚡ scott@IRONHEART>

Windows に SSH 接続すると、デフォルトの cmd.exe シェルが表示されることに注意してください。また、コンソール、ターミナル、およびシェルには違いがあることも忘れないでください。任意の端末で任意のマシンに ssh でき、最終的に任意のシェルに到達できます。この場合、DEFAULT は cmd.exe であり、最適ではありません。

Windows での OpenSSH のデフォルト シェルの設定

サーバー (SSH 接続している Windows マシン) で、レジストリ キーを設定して、既定のシェルを設定します。この場合、オープン ソースのクロス プラットフォーム PowerShell Core を使用します。あなたが幸せになるものは何でも使うことができます。

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\PowerShell\7\pwsh.exe" -PropertyType String -Force

これで、別の場所 (iPad でさえも!) から Windows マシンに SSH で接続すると、必要なシェルが得られます。

$ ssh [email protected]
PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

Loading personal and system profiles took 1854ms.
⚡ scott@IRONHEART>

公開鍵を使用して別の場所から Windows マシンに自動的にログインする Windows マシンのエントリを含むメニュー項目 (プロファイル) を Windows ターミナルに追加したい場合は、それも可能です!

さらに、これがセットアップされたので、WinSCP (ウィンドウ ストアで入手可能) と scp (セキュア コピー) を使用してファイルを転送できます。

もちろん、SSH 経由で Wi​​nRM または PowerShell Remoting を使用することもできますが、私の小さな内部ネットワークでは、このメカニズムがシンプルでクリーンであることがわかりました。今、私の黙りは宗派に関係ありません!

スポンサー: Riderでの開発はもう試しましたか?この高速で機能豊富なクロスプラットフォーム IDE は、Windows、Mac、および Linux 上の .NET、ASP.NET、.NET Core、Xamarin、および Unity アプリケーションのコードを改善します。


Linux
  1. LinuxのVirtualBoxでUSBドライブから起動する方法

  2. XRDPを使用してWindowsからLinuxデスクトップにデスクトップをリモート接続する方法

  3. Remminaを使用してLubuntulinuxからリモートWindowsマシンに接続する方法

  1. Ssh – Sshを介してグラフィカルモードでWindowsマシンからLinuxサーバーにアクセスしますか?

  2. Linux – SshからTtyにユーザーをログインさせる方法は?

  3. Linux ターミナルから Windows マシンをシャットダウンする

  1. AndroidからLinuxでSSH接続する方法

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

  3. クリップボードから nano に貼り付けるには?