Linux kabi SSH orqali Windowsga ulanish

Men har doim Windows mashinalariga ulanishdan xafa bo'lganman. Yo'q, men Microsoft va uning mahsulotlarining muxolifi ham, tarafdori ham emasman. Har bir mahsulot o'z maqsadi uchun mavjud, ammo bu gap emas.
Men uchun Windows serverlariga ulanish har doim juda og'riqli bo'lgan, chunki bu ulanishlar bitta joy orqali sozlangan (HTTPS bilan salom WinRM) yoki juda barqaror ishlamaydi (xorijdagi virtual mashinalarga salom RDP).

Shuning uchun, loyihaga tasodifan duch kelgan Win32-OpenSSH, Men sozlash tajribamni baham ko'rishga qaror qildim. Ehtimol, bu vosita kimnidir ko'p nervlarni qutqaradi.

Linux kabi SSH orqali Windowsga ulanish

O'rnatish imkoniyatlari:

  1. qo'lda
  2. Orqali paketi Chocolatey
  3. Ansible orqali, masalan, rol jborean93.win_openssh

Keyinchalik, men birinchi nuqta haqida gapiraman, chunki qolganlari bilan hamma narsa ko'proq yoki kamroq aniq.

Shuni ta'kidlashni istardimki, ushbu loyiha hali beta-bosqichda, shuning uchun uni ishlab chiqarishda ishlatish tavsiya etilmaydi.

Shunday qilib, eng so'nggi versiyani yuklab oling, hozir u 7.9.0.0p1-beta. 32 va 64 bitli tizimlar uchun versiyalar mavjud.

Qadoqdan chiqaring C: Dastur FilesOpenSSH
To'g'ri ishlash uchun majburiy nuqta: faqat SYSTEM va administrator guruhi.

Skript yordamida xizmatlarni o'rnatish install-sshd.ps1 ushbu katalogda joylashgan

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

22-portda kiruvchi ulanishlarga ruxsat bering:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

Aniqlik: applet Yangi-NetFirewall Rule Windows Server 2012 va undan keyingi versiyalarida foydalaniladi. Eng qadimgi tizimlarda (yoki ish stolida) siz quyidagi buyruqdan foydalanishingiz mumkin:

netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

Xizmatni boshlaylik:

net start sshd

Ishga tushganda, xost kalitlari avtomatik ravishda yaratiladi (agar yo'q bo'lsa). %dastur maΚΌlumotlari%ssh

Tizim buyruq bilan ishga tushganda xizmatni avtomatik ishga tushirishni yoqishimiz mumkin:

Set-Service sshd -StartupType Automatic

Siz standart buyruqlar qobig'ini ham o'zgartirishingiz mumkin (o'rnatishdan so'ng, standart cmd):

New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -Force

Aniqlik: Siz mutlaq yo'lni ko'rsatishingiz kerak.

Keyin nima?

Va keyin biz uni o'rnatamiz sshd_config, biz joylashtiramiz C: Dastur ma'lumotlari. Masalan:

PasswordAuthentication no
PubkeyAuthentication yes

Va foydalanuvchi papkasida katalog yarating .ssh, va unda fayl vakolatli tugmalar. U erda ochiq kalitlarni yozamiz.

Muhim tushuntirish: faqat fayl katalogida joylashgan foydalanuvchi ushbu faylga yozish huquqiga ega bo'lishi kerak.

Ammo bu bilan bog'liq muammolar mavjud bo'lsa, siz har doim konfiguratsiyada huquqlarni tekshirishni o'chirib qo'yishingiz mumkin:

StrictModes no

Aytgancha, ichida C: Dastur FilesOpenSSH 2 ta skript bor (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), huquqlarni belgilashi kerak, lekin majburiy emas, shu jumladan vakolatli tugmalar, lekin ba'zi sabablarga ko'ra ular ro'yxatdan o'tmaydi.

Xizmatni qayta ishga tushirishni unutmang ssh o'zgarishlarni qo'llashdan keyin.

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>

Subyektiv ijobiy / salbiy tomonlar.

Taroziga soling:

  • Serverlarga ulanish uchun standart yondashuv.
    Windows mashinalari kam bo'lsa, bu juda noqulay:
    Shunday qilib, biz ssh orqali o'tamiz va bu erda rdp dan foydalanamiz,
    va umuman olganda, bastionlar bilan eng yaxshi amaliyot birinchi navbatda ssh tunnelidir va u orqali RDP.
  • O'rnatish oson
    Menimcha, bu aniq.
  • Ulanish tezligi va masofaviy mashina bilan ishlash
    Grafik qobiq yo'q, bu ikkala server resurslarini va uzatilgan ma'lumotlar miqdorini tejaydi.

Kamchiliklari:

  • RDP ni to'liq almashtirmaydi.
    Afsuski, konsoldan hamma narsani qilish mumkin emas. Men GUI talab qilinadigan vaziyatlarni nazarda tutyapman.

Maqolada foydalanilgan materiallar:
Loyihaning o'ziga havola
O'rnatish variantlari uyalmasdan nusxa ko'chiriladi Ansible docs.

Manba: www.habr.com

a Izoh qo'shish