Linux వంటి SSH ద్వారా Windowsకి కనెక్ట్ అవుతోంది

విండోస్ మెషీన్‌లకు కనెక్ట్ చేయడం ద్వారా నేను ఎప్పుడూ విసుగు చెందాను. లేదు, నేను Microsoft మరియు వారి ఉత్పత్తులకు ప్రత్యర్థిని లేదా మద్దతుదారుని కాదు. ప్రతి ఉత్పత్తి దాని స్వంత ప్రయోజనం కోసం ఉంది, కానీ దీని గురించి కాదు.
Windows సర్వర్‌లకు కనెక్ట్ అవ్వడం నాకు ఎల్లప్పుడూ చాలా బాధాకరమైనది, ఎందుకంటే ఈ కనెక్షన్‌లు ఒకే స్థలంలో కాన్ఫిగర్ చేయబడి ఉంటాయి (HTTPSతో హలో WinRM) లేదా చాలా స్థిరంగా పని చేయవు (హలో RDP నుండి విదేశాల్లోని వర్చువల్ మెషీన్‌లకు).

అందువలన, అనుకోకుండా ప్రాజెక్ట్ అంతటా వచ్చింది Win32-OpenSSH, నేను నా సెటప్ అనుభవాన్ని పంచుకోవాలని నిర్ణయించుకున్నాను. బహుశా ఈ సాధనం ఎవరైనా చాలా నరాలను కాపాడుతుంది.

Linux వంటి SSH ద్వారా Windowsకి కనెక్ట్ అవుతోంది

సంస్థాపన ఎంపికలు:

  1. మానవీయంగా
  2. ద్వారా ప్యాకేజీ chocolatey
  3. Ansible ద్వారా, ఉదాహరణకు పాత్ర jborean93.win_openssh

తరువాత, నేను మొదటి పాయింట్ గురించి మాట్లాడతాను, ఎందుకంటే మిగిలిన వాటితో ప్రతిదీ ఎక్కువ లేదా తక్కువ స్పష్టంగా ఉంటుంది.

ఈ ప్రాజెక్ట్ ఇప్పటికీ బీటా దశలోనే ఉందని నేను గమనించాలనుకుంటున్నాను, కాబట్టి దీన్ని ఉత్పత్తిలో ఉపయోగించడం మంచిది కాదు.

కాబట్టి, ప్రస్తుతానికి తాజా విడుదలను డౌన్‌లోడ్ చేయండి 7.9.0.0p1-బీటా. 32 మరియు 64 బిట్ సిస్టమ్స్ రెండింటికీ వెర్షన్లు ఉన్నాయి.

అన్‌ప్యాక్ ఇన్ చేయండి C:Program FilesOpenSSH
సరైన ఆపరేషన్ కోసం తప్పనిసరి పాయింట్: మాత్రమే SYSTEM మరియు నిర్వాహక సమూహం.

స్క్రిప్ట్‌ని ఉపయోగించి సేవలను ఇన్‌స్టాల్ చేస్తోంది install-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 విండోస్ సర్వర్ 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, దీనిలో మేము ఉంచుతాము సి: ప్రోగ్రామ్ డేటా. ఉదాహరణకు:

PasswordAuthentication no
PubkeyAuthentication yes

మరియు వినియోగదారు ఫోల్డర్‌లో డైరెక్టరీని సృష్టించండి .స్ష్, మరియు దానిలో ఫైల్ అధీకృత_కీలు. మేము అక్కడ పబ్లిక్ కీలను వ్రాస్తాము.

ముఖ్యమైన స్పష్టీకరణ: ఫైల్ ఎవరి డైరెక్టరీలో ఉందో వినియోగదారుకు మాత్రమే ఈ ఫైల్‌కు వ్రాయడానికి హక్కు ఉండాలి.

కానీ మీకు దీనితో సమస్యలు ఉంటే, మీరు ఎల్లప్పుడూ కాన్ఫిగరేషన్‌లో హక్కుల తనిఖీని ఆఫ్ చేయవచ్చు:

StrictModes no

మార్గం ద్వారా, లో C:Program FilesOpenSSH 2 స్క్రిప్ట్‌లు ఉన్నాయి (FixHostFilePermissions.ps1, FixUserFilePermissions.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>

సబ్జెక్టివ్ ప్రోస్/కాన్స్.

ప్రోస్:

  • సర్వర్‌లకు కనెక్ట్ చేయడానికి ప్రామాణిక విధానం.
    కొన్ని విండోస్ మెషీన్లు ఉన్నప్పుడు, ఇది చాలా అసౌకర్యంగా ఉంటుంది:
    కాబట్టి, ఇక్కడ మనం ssh ద్వారా వెళ్తాము మరియు ఇక్కడ మనం rdpని ఉపయోగిస్తాము,
    మరియు సాధారణంగా, బురుజులతో ఉత్తమ-ఆచరణ మొదట ssh సొరంగం మరియు దాని ద్వారా RDP.
  • సెటప్ చేయడం సులభం
    ఇది స్పష్టంగా ఉందని నేను భావిస్తున్నాను.
  • రిమోట్ మెషీన్‌తో కనెక్షన్ వేగం మరియు పని
    గ్రాఫికల్ షెల్ లేదు, సర్వర్ వనరులు మరియు ప్రసారం చేయబడిన డేటా మొత్తం రెండింటినీ సేవ్ చేస్తుంది.

కాన్స్:

  • RDPని పూర్తిగా భర్తీ చేయదు.
    కన్సోల్ నుండి ప్రతిదీ చేయలేము, అయ్యో. నా ఉద్దేశ్యం GUI అవసరమైన సందర్భాలు.

వ్యాసంలో ఉపయోగించిన పదార్థాలు:
ప్రాజెక్ట్‌కి లింక్ చేయండి
ఇన్‌స్టాలేషన్ ఎంపికలు సిగ్గు లేకుండా కాపీ చేయబడ్డాయి అన్సిబుల్ డాక్స్.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి