Komplett guide til bruk av SSH fra PowerShell: Slik kobler du til, administrerer og automatiserer eksterne økter

  • PowerShell tillater innebygde SSH-tilkoblinger i Windows, Linux og macOS for å administrere eksterne systemer på en sikker måte.
  • OpenSSH er enkel å installere og konfigurere, og muliggjør integrert passord- eller offentlig nøkkelautentisering.
  • PowerShell-cmdleter støtter eksterne SSH-økter, kommandokjøring og filoverføring uten å være avhengig av ekstern programvare.

Slik bruker du SSH fra PowerShell

I dag er fjernsystemadministrasjon et must for enhver systemadministrator, utvikler eller dataentusiast som jobber med forskjellige servere eller PC-er, enten de er Windows, Linux eller til og med macOS. Utseendet til PowerShell med innebygd støtte for SSH har vært en skikkelig katalysator. om hvordan du kobler til og administrerer datamaskiner sikkert og effektivt. Hvis du er en av dem som fortsatt tror du trenger ekstern programvare eller at prosessen er komplisert, fortsett å lese: denne artikkelen vil rydde opp i all tvilen din og tjene som en komplett guide til bruk av SSH fra PowerShell, som dekker installasjoner, kommandoer, avanserte trinn og praktiske tips for forskjellige miljøer.

Å kunne koble til via SSH fra PowerShell lar deg ikke bare administrere servere uten å forlate stolen., men sparer deg også for å måtte installere tredjepartsapplikasjoner, noe som gir en innebygd, sikker og plattformuavhengig opplevelse. Integreringen av SSH i PowerShell har forenklet automatiserings- og administrasjonsoppgaver betraktelig, både i infrastrukturer Windows som i blandede miljøer, der systemer fra forskjellige produsenter eksisterer side om side.

Hva er SSH og hvorfor bruke det med PowerShell?

SSH (Secure Shell) er en protokoll som lar deg koble til andre datamaskiner over nettverket på en kryptert og sikker måte. Erstatter eldre protokoller som Telnet, som sikrer at alle data som sendes (legitimasjon eller kommandoer) beveger seg beskyttet mot mulig avlytting. Det har vært standarden for sikker fjerntilgang i årevis, spesielt på Linux-servere, men bruken i Windows har vokst takket være integreringen av OpenSSH i selve systemet og i PowerShell.

Med PowerShell, SSH-kommandoer kan utføres fra konsollen Windows eller skript, administrere filer, automatisere oppgaver og koble til begge serverne Windows som Linux eller nettverksenheter – alt fra ett enkelt verktøy. Dette gjør det til en svært fleksibel og kraftig løsning.

Fordeler med å bruke SSH fra PowerShell

  • multiplattform: Administrer systemer Windows, Linux og macOS uten å bytte program.
  • Enkel automatisering: Integrer SSH-kommandoer i PowerShell-skriptene dine for gjentakende oppgaver.
  • Ingen tilleggsprogramvare: Glem å installere eksterne klienter som PuTTY, ettersom funksjonaliteten er standard i Windows 10, 11 og Server 2019 eller nyere.
  • sikkerhet: SSH krypterer all kommunikasjon og støtter passord- eller nøkkelautentisering.

Krav for bruk av SSH i PowerShell

Før du begynner, sørg for at du oppfyller følgende grunnleggende krav:

  • PowerShell versjon 5.1 eller høyere (PowerShell 6 eller 7 anbefales for SSH-kompatibilitet og avanserte funksjoner).
  • SSH-klient installert. i Windows 10 siden versjon 1809 og Windows Server 2019, OpenSSH er forhåndsinstallert. For tidligere versjoner kan du installere det manuelt fra delen om valgfrie funksjoner. Windows.
  • SSH-server aktivDatamaskinen du vil koble til må ha en kjørende SSH-server, enten det er en Linux-server eller en annen Windows, en macOS eller en kompatibel nettverksenhet.
  • Passende tillatelserDu må ha gyldige påloggingsinformasjon på den eksterne datamaskinen (brukernavn og passord eller en SSH-nøkkel) og helst være administrator hvis du installerer eller konfigurerer tjenester.
  • Nettverkstilgang og port 22 åpne i brannmuren for å tillate SSH-tilkoblinger.

Installere og konfigurere OpenSSH i Windows

OpenSSH-integrasjon i Windows Det er et av de største fremskrittene innen fjernadministrasjon med PowerShell. Her er de viktigste trinnene for å installere og konfigurere det på riktig måte:

1. Sjekk om OpenSSH er tilgjengelig

Åpne PowerShell som administrator og kjør:

Få-WindowsKapabilitet-pålogget | Hvor-Objektnavn -som 'OpenSSH*'

Hvis du ser statusen «Installert» for OpenSSH.Client eller OpenSSH.Server, har du det allerede tilgjengelig. Hvis det står «Ikke til stede», må du installere det.

2. Installer OpenSSH-klienten og/eller -serveren

Legge til-WindowsMulighet -Online -Navn OpenSSH.Client~~~~0.0.1.0 Tillegg-WindowsMulighet -Online -Navn OpenSSH.Server~~~~0.0.1.0

Den første lar deg koble til andre datamaskiner, den andre lar andre koble til PC-en din.

3. Start og konfigurer OpenSSH-tjenesten

Start-tjeneste sshd Set-tjeneste -navn sshd -oppstartstype 'Automatisk'

Dette vil aktivere tjenesten og sette den til å starte automatisk med Windows.

4. Brannmurkonfigurasjon

Sørg for at brannmuren din er Windows Tillater SSH-tilkoblinger på port 22. Når du installerer OpenSSH, opprettes regelen vanligvis automatisk, men for å bekrefte dette kan du bruke:

Get-NetFirewallRule -Navn "OpenSSH-Server-In-TCP"

Hvis den ikke finnes, kan du enkelt legge den til:

New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Retning innkommende -Protokoll TCP -Handling tillat -LocalPort 22

Konfigurer SSH på Linux, macOS og Windows for eksterne PowerShell-økter

SSH i PowerShell er ikke bare for tilkobling til Linux-systemer. Fra og med PowerShell 6 kan det brukes til å kjøre eksterne PowerShell-økter (PSRemoting) ved hjelp av SSH som transport, noe som muliggjør økter på tvers av plattformer.

Konfigurasjon i Windows

  1. Installer den nyeste versjonen av PowerShellDu kan laste den ned fra GitHub.
  2. Rediger sshd_config-filen (At $Env:ProgramData\ssh):
    • Aktiver passordautentisering:
      PasswordAuthentication ja
    • Legg til delsystemet for PowerShell:
      Delsystem powershell C:/program~1/powershell/7/pwsh.exe -sshs

      Du kan opprette en symbolsk lenke for å forenkle banen til den kjørbare filen:

      Nytt-element -ItemType SymbolicLink -Sti 'C:\ProgramData\ssh\' -Navn 'pwsh.exe' -Verdi (Get-Command pwsh.exe).Kilde
    • Hvis du vil bruke nøkkelgodkjenning:
      PubkeyAuthentication ja
  3. Start sshd-tjenesten på nytt:
    Omstart av tjenesten sshd
  4. Sørg for at OpenSSH-banen er i PATH-variabelen.

Konfigurasjon i Linux

  1. Installer PowerShell fra det offisielle arkivet ().
  2. Installer SSH-serveren:
    sudo apt install openssh-klient sudo apt install openssh-server
  3. Rediger /etc/ssh/sshd_config-filen:
    • Sikre linjen:
      PasswordAuthentication ja
    • Legg til PowerShell-delsystemet:
      Delsystem powershell /usr/bin/pwsh -sshs -NoLogo
    • For autentisering av offentlig nøkkel:
      PubkeyAuthentication ja
  4. Start SSH-tjenesten på nytt:
    sudo systemctl start sshd.service på nytt

Innstillinger på macOS

  1. Installer den nyeste versjonen av PowerShell.
  2. Aktiver fjerntilgang (fjernpålogging) i systeminnstillingene, under «Deling».
  3. Rediger /private/etc/ssh/sshd_config og legger til:
    • PasswordAuthentication ja
    • Delsystem powershell /usr/local/bin/pwsh -sshs -NoLogo
    • PubkeyAuthentication ja
  4. Start SSH-tjenesten på nytt:
    sudo launchctl stopp com.openssh.sshd sudo launchctl start com.openssh.sshd

Fjerntilkobling og -administrasjon med PowerShell og SSH

Det er to hovedmåter å bruke SSH fra PowerShell på:

  • Kjør kommando ssh direkte fra konsollen, akkurat som på Linux- eller macOS-systemer.
  • Bruk PowerShell-spesifikke cmdleter for eksterne økter: Ny-PSSession, Enter-PSSession, Påkall-Kommando, som støtter en SSH-tilkobling som transport, ideelt for å kjøre kommandoer eller skript på andre datamaskiner.

Grunnleggende tilkobling ved hjelp av ssh-kommandoen

ssh bruker@IP_eller_vertsnavn

Du vil bli bedt om å oppgi passordet ditt, eller hvis du har konfigurert autentisering med offentlig nøkkel, vil det bli brukt direkte.

Du kan bruke alle de vanlige Linux-kommandoene, og også manipulere filer, starte tjenester på nytt osv. For å avslutte økten, bruk avslutte.

PowerShell-cmdleter med SSH

Fra og med PowerShell 6 kan du opprette eksterne økter ved hjelp av SSH. Eksempler:

$økt = New-PSSession -HostName RemoteServer -Brukernavn yourUser Enter-PSSession $økt

Slik kjører du én enkelt fjernkommando:

Invoke-Command -Session $session -ScriptBlock { Get-Process }

For å frigi økten:

Fjern-PSSession $session

Praktiske eksempler: fra Windows til Linux og omvendt

Tenk deg at du har en Windows 11 og du vil ha tilgang til Ubuntu-serveren din. Fremgangsmåten vil være:

  1. Åpne PowerShell i Windows.
  2. Han skriver:
    ssh dinbruker@Ubuntu_IP
  3. Skriv inn passordet når du blir bedt om det.
  4. Du kan nå kjøre kommandoer på den eksterne serveren.

Prosessen er identisk for tilkoblinger mellom Linux og Windows, bare endre brukeren og destinasjonsdatamaskinen.

Filoverføring med PowerShell og SSH

En annen veldig praktisk funksjon er bruken av scp (sikker kopi), som også er tilgjengelig i Windows med OpenSSH og lar deg overføre filer mellom lokale og eksterne datamaskiner.

scp file.txt bruker@IP:/sti/destinasjon/

Eller omvendt, last ned fra den eksterne serveren:

scp bruker@IP:/sti/fil.txt ./

Nyttige PowerShell-Linux-kommandoer og ekvivalenter

  • ls / dir: Viser innholdet i en katalog
  • CD: Endre katalog på den eksterne serveren
  • rm / Fjern-element: Slett filer eller mapper
  • mv / Flytt-element: Flytt eller gi nytt navn til filer
  • berøring / ny vare: Opprett filer
  • brukertillegg: Legg til brukere (på Linux)
  • scp: Kopier filer mellom datamaskiner

SSH-nøkkelhåndtering for avansert autentisering

Det er greit å bruke passord til å begynne med, men den tryggeste og mest praktiske er autentisering basert på offentlig nøkkel:

    1. Generer en SSH-nøkkel:
      ssh-keygen
    2. Legg til den offentlige nøkkelen til den eksterne serveren: Kopier innholdet i id_rsa.pub (Linux) eller den genererte filen i Windows til ~/.ssh/authorized_keys på målserveren.
    3. Bruk eventuelt ssh-agent til å administrere flere nøkler:
ssh-legg til privat_nøkkelsti

På denne måten trenger du bare å skrive inn nøkkelen første gang, eller ikke i det hele tatt, hvis ssh-agenten er riktig konfigurert.

Begrensninger og viktige hensyn

  • sudo-kommandoen Den er ikke direkte tilgjengelig i eksterne PowerShell-SSH-økter på Linux. For å kjøre privilegerte kommandoer må du finne alternativer eller spesifikke metoder.
  • PowerShell-profiler ($PROFILE) er ikke lastet inn automatisk under SSH-økter. Hvis du trenger å bruke en, må du laste den inn manuelt etter at du har startet den eksterne økten.
  • Begrensninger på tvers av plattformer: Enkelte avanserte funksjoner (som endepunktsadministrasjon eller JEA) støttes kun av WinRM, selv om ytterligere støtte under SSH forventes i fremtiden.
  • Andre hopp av eksterne økter: Før PowerShell 7.1 var det ikke mulig å opprette en andre ekstern økt fra en allerede aktiv økt ved hjelp av SSH, men fra og med den versjonen er det nå mulig, om enn med visse begrensninger.

Spesialisert bruk: svitsjer, nettverksenheter og REST API-er

PowerShell kan koble seg til nettverksenheter som svitsjer via SSH for å utføre kommandoer, selv om det avhenger av firmwarens muligheter og SSH-protokollstøtte. For mer avanserte oppgaver tilbyr noen maskinvareprodusenter REST API-er som også kan administreres fra PowerShell.

I mange tilfeller Den direkte metoden med SSH er det mest universelle alternativet, enkel og kompatibel for grunnleggende operasjoner på den eksterne datamaskinen.

Alternativer til OpenSSH? PuTTY og andre klienter

Selv om OpenSSH nå er integrert i Windows, verktøy som PuTTY er fortsatt gyldige alternativer, spesielt hvis du trenger et grafisk grensesnitt eller for å administrere lagrede tilkoblinger med forskjellige konfigurasjoner og nøkler. Direkte integrasjon med PowerShell og skript gjør imidlertid OpenSSH til det foretrukne alternativet for de fleste brukere og automatiseringsoppgaver.

Hva om jeg jobber med GitHub eller lignende plattformer?

Det er viktig å sette opp SSH-nøkler i PowerShell hvis du bruker plattformer som GitHubProsedyren består av å generere nøkkelen, legge den til agenten og kopiere den offentlige nøkkelen til GitHub-profilinnstillingene dine. Når dette er gjort, kan du jobbe med repositoriene dine sikkert uten å måtte oppgi passordet hver gang.

Å mestre SSH i PowerShell åpner opp en verden av muligheter for å administrere og automatisere oppgaver, om du administrerer servere Windows, Linux eller nettverksenheterTakket være innebygd OpenSSH-integrasjon og kraften til PowerShell-cmdleter, er det bare noen få minutter å kontrollere eksterne systemer. Fra første installasjon og konfigurasjon til filoverføringer og utføring av komplekse kommandoer, kan enhver bruker gjøre PC-en sin om til et ekte, sikkert og allsidig operasjonssenter på tvers av plattformer.

WSL 2 (Windows Delsystem for Linux 2): Alt om delsystemet for Linux Windows for Linux, fordeler og hvordan du kan dra nytte av det

Legg igjen en kommentar