# 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](https://www.ionos.it/digitalguide/server/know-how/powershell/) è possibile creare connessioni SSH a sistemi remoti ed eseguire **comandi SSH** in uno [script PowerShell](https://www.ionos.it/digitalguide/server/configurazione/creare-uno-script-in-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.

## Come usare PowerShell tramite SSH: una guida

Prima di poter usare [Secure Shell (SSH)](https://www.ionos.it/digitalguide/server/tools-o-strumenti/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:

```powershell
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
```

### Secondo passaggio: avvio del servizio OpenSSH

Una volta portata a termine l’installazione, puoi avviare il servizio OpenSSH:

```powershell
Start-Service sshd
```

Puoi controllare se il servizio OpenSSH funziona:

```powershell
Get-Service sshd
```

Lo stato **in esecuzione** (running) indica che sshd sta funzionando.

[![Immagine: Servizio PowerShell tramite SSH](https://www.ionos.it/digitalguide/fileadmin/_processed_/8/c/csm_powershell-get-service-ssh_a9063b610b.webp "Servizio PowerShell tramite SSH")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/powershell-get-service-ssh.png) Il servizio Get service sshd verifica che il servizio SSH sia in funzione. ### 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:

```powershell
Set-Service -Name sshd -StartupType 'Automatic'
```

### Quarto 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)**.

```powershell
New-NetFirewallRule -Name 'OpenSSH-Server' -DisplayName 'OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
```

### Quinto 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**.

```powershell
ssh username@servername
```

Sostituisci “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.

[![Immagine: Login PowerShell tramite SSH](https://www.ionos.it/digitalguide/fileadmin/_processed_/a/5/csm_powershell-ssh-login_05553cb132.webp "Login PowerShell tramite SSH")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/powershell-ssh-login.png) inserire password SSH. ### 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:

[![Immagine: Esempio PWD per i comandi PowerShell](https://www.ionos.it/digitalguide/fileadmin/_processed_/f/e/csm_powershell-ssh-commands-example_4f8b6f0a09.webp "Esempio PWD per i comandi PowerShell")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/powershell-ssh-commands-example.png) Esempio di comando SSH in PowerShell. 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](https://www.ionos.it/digitalguide/server/configurazione/comandi-powershell/).


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/powershell-tramite-ssh/](https://www.ionos.it/digitalguide/server/configurazione/powershell-tramite-ssh/) for AI/LLM consumption.