私は Windows マシンに接続することにいつもイライラしていました。 いいえ、私は Microsoft とその製品の反対者でも支持者でもありません。 各製品はそれぞれの目的のために存在しますが、それが目的ではありません。
Windows サーバーに接続するのは、私にとって常に耐え難いほど苦痛でした。これらの接続は XNUMX か所で構成されているか (HTTPS を使用した WinRM など)、あまり安定して動作しないか (海外の仮想マシンへの RDP など) のいずれかであるためです。
そこで、偶然このプロジェクトに出会って、
手動で - スルー
パッケージ チョコレート - Ansible 経由、たとえばロール
jborean93.win_openssh
次に、最初の点についてお話します。残りの部分はほぼすべて明らかになっています。
このプロジェクトはまだベータ段階にあるため、運用環境での使用はお勧めできません。
したがって、最新リリースをダウンロードしてください。現時点では、
開梱してください C:プログラム ファイルOpenSSH
正しく操作するための必須ポイント: SYSTEM そして管理者グループ。
スクリプトを使用したサービスのインストール インストール-sshd.ps1 このディレクトリにあります
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
ポート 22 での受信接続を許可します。
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
説明: アプレット 新しい NetFirewallRule Windows Server 2012 以降で使用されます。 最も古いシステム (またはデスクトップ) では、次のコマンドを使用できます。
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
サービスを開始しましょう:
net start sshd
起動時に、ホストキーが自動的に生成されます(欠落している場合)。 %プログラムデータ%ssh
次のコマンドを使用して、システムの起動時にサービスの自動起動を有効にできます。
Set-Service sshd -StartupType Automatic
デフォルトのコマンド シェルを変更することもできます (インストール後のデフォルトは CMD):
New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -Force
明確化: 絶対パスを指定する必要があります。
次は何ですか?
そしてそれをセットアップしました sshd_configに置きます C:プログラムデータ。 例えば、
PasswordAuthentication no
PubkeyAuthentication yes
そしてユーザーフォルダ内にディレクトリを作成します .ssh、その中のファイル 認可されたキー。 そこに公開鍵を書き留めます。
重要な説明: ファイルが配置されているディレクトリに属するユーザーのみが、このファイルに書き込む権限を持つ必要があります。
ただし、これに問題がある場合は、設定で権利チェックをいつでもオフにすることができます。
StrictModes no
ちなみに、 C:プログラム ファイルOpenSSH スクリプトは 2 つあります (HostFilePermissions.ps1 を修正, UserFilePermissions.ps1 を修正)、権利を修正する必要がありますが、その義務はありません。 認可されたキー, しかし、何らかの理由で登録されません。
サービスを再起動することを忘れないでください sshd 変更を適用した後。
ru-mbp-666:infrastructure$ ssh [email protected] -i ~/.ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS C:UsersAdministrator> Get-Host
Name : ConsoleHost
Version : 5.1.14393.2791
InstanceId : 653210bd-6f58-445e-80a0-66f66666f6f6
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
PS C:UsersAdministrator>
主観的な長所/短所。
長所:
- サーバーに接続するための標準的なアプローチ。
Windows マシンの数が少ない場合、次のような場合に非常に不便です。
ここでは ssh 経由で、ここでは rdp を使用します。
一般に、要塞のベスト プラクティスは、まず ssh トンネルを作成し、それを介して RDP を実行することです。 - セットアップの容易さ
これは明らかだと思います。 - リモートマシンとの接続と作業の速度
グラフィカル シェルがないため、サーバー リソースと送信データ量の両方が節約されます。
短所:
- RDP を完全に置き換えるものではありません。
残念ながら、コンソールからすべてを実行できるわけではありません。 GUI が必要な状況を指します。
記事で使用した資料:
インストールオプションは恥知らずにもからコピーされています
出所: habr.com