PowerShellでOpenSSH
を使用して、Windowsの構成ファイルに ホスト名とポート を設定するにはどうすればよいですか?
Unix/Linuxと同様:
次のように入力して、ファイルを編集または作成します。
nano〜/ .ssh/config
ここでは、ホスト固有の構成オプションを設定できます。新しいポートを指定するには、次のような形式を使用します。
ホストremote_alias HostName remote_Hostポートport_num
これにより、コマンドラインで特定のポート番号を指定せずにログインできます。
OpenSSH構成および主要ファイル(config
、known_hosts
、authorized_keys
、id_rsa
などを含む)。* nixでは~/.ssh
、 on Win32-OpenSSH 彼らは%USERPROFILE%\.ssh
に行きます。
通常は次のとおりです。
C:\Users\username\.ssh
OpenSSHのインストール後、追加の設定手順をいくつか実行します。
OpenSSHフォルダーがシステムパス環境変数に含まれていることを確認します。
C:\ Windows\System32\OpenSSH\Windowsオプション機能としてインストールされている場合C:\ Program Files\OpenSSH\OpenSSHダウンロードを介してインストールされている場合2つのサービスを自動的に開始するように設定します。
Set-Service sshd -StartupType Automatic
Set-Service ssh-agent -StartupType Automaticオプションの機能を備えたOpenSSHをインストールした場合、Windowsは新しいファイアウォールルールを作成して、ポート22を介したSSHのインバウンドアクセスを許可します。ダウンロードからOpenSSHをインストールした場合は、このファイアウォールルールを作成しますコマンド:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server(sshd)' `
-Enabled True -Direction Inbound -Protocol TCP `
-Action Allow -LocalPort 22 sshdサービスを開始して、SSHキーを生成します。
Start-Service sshd SSHキーと構成ファイルは、隠しフォルダーであるC:\ ProgramData\sshにあります。 SSHが使用するデフォルトのシェルは、Windowsコマンドシェルです。これをPowerShellに変更する必要があります。
New-ItemProperty -Path "HKLM:\ SOFTWARE\OpenSSH" -Name DefaultShell `
-Value "C:\ Program Files\PowerShell\6\pwsh.exe" -PropertyType String -Forceこれで、SSH経由でシステムに接続すると、PowerShell Coreが起動し、デフォルトのシェルになります。必要に応じて、デフォルトのシェルWindows PowerShellを作成することもできます。
WindowsのOpenSSHにバグがあります。 PowerShell Core実行可能ファイルへのパスなど、スペースを含むパスでは機能しません。回避策は、OpenSSHが使用できるパスを作成するシンボリックリンクを作成することです。
New-Item -ItemType SymbolicLink -Path C:\ pwsh -Target 'C:\ Program Files\PowerShell\6' sshd_configファイルで、次の行のコメントを外します。
PubkeyAuthenticationはい
PasswordAuthentication yesこの行を他のサブシステム行の前に追加します。
サブシステムpowershell C:\ pwsh\pwsh.exe -sshs -NoLogo -NoProfileこれは、OpenSSHにPowerShell Coreを実行するように指示します。
行をコメント化します。
AuthorizedKeysFile [〜#〜] programdata [〜#〜]/ssh/administrators_authorized_keys sshd_configファイルへの変更を保存した後、サービスを再起動します。
再起動サービスsshd
Start-Service ssh-agent構成ファイルを変更した後は、sshdサービスを再起動する必要があります。