Connettere PowerShell con SSH
Con PowerShell tramite SSH è possibile accedere a sistemi remoti e gestirli praticamente da qualsiasi luogo. Inoltre, SSH presenta funzioni di logging dettagliate che garantiscono il monitoraggio completo e la tracciabilità delle attività sul server.
Requisiti per poter usare PowerShell tramite SSH
Integrando SSH in Windows PowerShell è possibile creare connessioni SSH a sistemi remoti ed eseguire comandi SSH in uno script PowerShell. Questo semplifica notevolmente la gestione e l’automazione delle attività in infrastrutture IT distribuite, soprattutto in contesti eterogenei che includono sia sistemi Windows che non Windows.
Di seguito ti elenchiamo i requisiti necessari per l’uso di PowerShell:
- Installazione di PowerShell: assicurati di avere installato PowerShell v6 (o una versione superiore) sul tuo computer. Anche se di solito il programma è già presente nei sistemi Windows, verifica che la versione in uso supporti SSH.
- Client SSH: per stabilire una connessione SSH nell’ambiente PowerShell hai bisogno di un client SSH. Su Windows 10/11 e Windows Server 2019, OpenSSH è disponibile per impostazione predefinita. Tuttavia, se usi una versione di Windows più vecchia, potresti dover installare OpenSSH manualmente.
- Server SSH: il server SSH è il punto di destinazione della connessione. Può essere un server Linux, un dispositivo di rete o qualsiasi altro host che supporta SSH.
- Accesso alla rete: il tuo computer locale deve essere connesso alla rete e in grado di raggiungere il server SSH remoto. Nel firewall assicurati che la porta sia impostata sul 22, in modo da consentire la comunicazione tramite protocollo SSH.
- Moduli PowerShell: ci sono moduli PowerShell appositamente sviluppati per l’uso di SSH, come ad esempio il modulo “PSSession” o “Posh-SSH”. Per poter usufruire delle funzionalità SSH direttamente in PowerShell assicurati che sul tuo sistema sia installato il modulo corrispondente.
- Permessi: per stabilire una connessione SSH dal tuo computer locale e avere accesso al server remoto, devi possedere i permessi di amministratore o dei permessi avanzati. Inoltre, devi digitare una password o utilizzare una chiave SSH per autenticarti durante la connessione.
- Hardware dedicato al 100%
- Fatturazione al minuto
- Potenziato dai processori Intel® Xeon® e AMD
Come usare PowerShell tramite SSH: una guida
Prima di poter usare Secure Shell (SSH) in PowerShell, devi configurare OpenSSH-Server. Successivamente potrai avviare la sessione PowerShell SSH ed eseguire i comandi sul sistema remoto.
Primo passaggio: installazione di OpenSSH
Prima di tutto, fai clic sul menu di avvio o digita “PowerShell” nella barra di ricerca. Seleziona esegui come amministratore per aprire Windows PowerShell. Una volta aperto, per installare la funzione OpenSSH sul tuo computer Windows puoi utilizzare il seguente comando PowerShell:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
powershellSecondo passaggio: avvio del servizio OpenSSH
Una volta portata a termine l’installazione, puoi avviare il servizio OpenSSH:
Start-Service sshd
powershellPuoi controllare se il servizio OpenSSH funziona:
Get-Service sshd
powershellLo stato in esecuzione (running) indica che sshd sta funzionando.
Terzo passaggio: avvio automatico del servizio server SSH
Se desideri attivare il servizio server OpenSSH ogni volta che riavvii Windows, puoi digitare il seguente comando:
Set-Service -Name sshd -StartupType 'Automatic'
powershellQuarto passaggio: configurazione del firewall
Se hai attivato il firewall di Windows, assicurati di aggiungere una regola per consentire il traffico SSH tramite la porta 22 (la porta predefinita per SSH).
New-NetFirewallRule -Name 'OpenSSH-Server' -DisplayName 'OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
powershellQuinto passaggio: instaurazione di una connessione SSH
Ora sei pronto ad accedere al server SSH da un altro dispositivo. Per farlo, apri PowerShell sul tuo client del PC e inserisci il comando SSH completo di nome utente e indirizzo del server.
ssh username@servername
powershellSostituisci “username” con il tuo nome utente SSH e “servername” con l’indirizzo IP o il nome host del server remoto. Quando avvii il comando ti verrà chiesto di inserire la password SSH, a meno che tu non stia utilizzando una chiave SSH per l’autenticazione.
Sesto passaggio: lavoro durante la sessione SSH
Ora che hai stabilito la connessione SSH potrai eseguire comandi sul server remoto come se fossi connesso direttamente. Per terminare la sessione SSH e tornare a PowerShell in locale puoi utilizzare il comando exit
.
In PowerShell esistono vari comandi SSH: uno di essi è pwd
che sta per “print working directory” e mostra la directory di lavoro corrente, ad esempio:
Di seguito trovi una lista di comandi che possono essere usati in PowerShell SSH:
-
ls/dir
: mostra il contenuto di una directory -
cd
: cambia la directory sul server remoto -
touch/New-Item
: crea un nuovo file -
rm/Remove-Item
: elimina un file o una directory -
mv/Move-Item
: sposta o rinomina file e directory -
useradd
: aggiunge un nuovo utente -
scp
: trasferisce file tra il client e il server
Ulteriori comandi sono disponibili nella nostra panoramica dei comandi PowerShell.