Visualizzazione post con etichetta OpenSSH. Mostra tutti i post
Visualizzazione post con etichetta OpenSSH. Mostra tutti i post

martedì 9 maggio 2023

Windows Quick Tip: Generare coppia di chiavi SSH tramite riga di comando

Gli algoritmi crittografici sono fondamentali per la sicurezza delle comunicazioni.
Il protocollo di rete SSH (Secure Shell) sfrutta la crittografia asimmetrica per rendere sicura la connessione veicolata attraverso una rete insicura come ad esempio Internet. Grazie all'integrazione della tecnologia OpenSSH avvenuta nel 2018, i sistemi operativi Microsoft sono in grado di gestire in maniera nativa le chiavi crittografiche per svariati utilizzi. Tramite il client OpenSSH integrato in Windows è possibile generare manualmente una coppia di chiavi crittografiche da utilizzare per applicazioni web o altro. La generazione delle chiavi in Windows può essere eseguita dal prompt dei comandi (WIN+R e poi digitare ed eseguire il comando cmd) tramite il comando
ssh-keygen
Per la generazione delle due chiavi SSH verrà richiesto di specificare il nome dei file corrispondenti e, facoltativamente, sarà possibile immettere una frase di sicurezza da utilizzare per la protezione della chiave privata. Alla fine del processo verranno prodotti due file. Il file contenente la chiave private è riconoscibile poiché senza estensione mentre quello contenente la chiave pubblica sarà caratterizzato dall'estensione .pub.
ssh-keygen
FIG 1 - ssh-keygen
I file possono essere aperti con un comune editor di testo come blocco note (notepad.exe).
OpenSSh Private key
FIG 2 - OpenSSh Private key

Sintassi

ssh-keygen [Opzioni]

Opzioni

Alcune opzioni importanti del comando ssh-keygen sono le seguenti:

-b bit
Specifica il numero di bit della chiave da creare. La lunghezza predefinita è 3072 bit (RSA) o 256 bit (ECDSA).

-C commento 
Permette di specificare un commento personalizzato alla chiave (che verrà aggiunto alla fine della chiave pubblica).

-p 
Richiede di modificare la passphrase di un file di chiave privata invece di creare una nuova chiave privata.

-t 
Specifica il tipo di chiave da creare. I valori accettati sono:
  • RSA
  • DSA
  • ECDSA
  • ed25519

-o 
Utilizza il nuovo formato OpenSSH.

-q 
Quiet. Durante il processo non viene visualizzato alcun output a video. Viene utilizzato dal file /etc/rc durante la creazione di una nuova chiave.

-N 
Fornisce una nuova passphrase.

-B 
Scarica la fingerprint della chiave nel formato Bubble Babble.

-l
Scarica la fingerprint della chiave in formato SHA-2 (o MD5).




martedì 12 marzo 2019

PowerShell: Installazione/Disinstallazione di OpenSSH Client/Server in Windows 10

OpenSSH (Open Secure Shell) è un'insieme di strumenti utilizzato per connessioni da remoto cifrate tramite il protocollo SSH. Tutto il traffico viene cifrato consentendo una comunicazione sicura e immune da intercettazioni, dirottamenti e altri tipi di attacchi.

Microsoft ha integrato, come funzionalità facoltative, OpenSSH Client e OpenSSH Server all'interno del proprio sistema operativo. Le due funzionalità possono essere installate separatamente in Windows Server 2019 e Windows 10 1809 sia tramite interfaccia grafica (GUI) sia tramite PowerShell.


Installazione di OpenSSH Client/Server tramite GUI

  • Avviare l'app Impostazioni (WIN+I) quindi cliccare su App;
    Windows 10, Impostazioni
    FIG 1 - Windows 10, Impostazioni
  • Nella sezione App e funzionalità cliccare sul link Gestisci funzionalità facoltative;
    Windows 10, App e funzionalità
    FIG 2 - Windows 10, App e funzionalità
  • Cliccare su Aggiungi una funzionalità;
    Windows 10, Aggiungi una funzionalità
    FIG 3 - Windows 10, Aggiungi una funzionalità
  • Selezionare la funzionalità che si intende installare e cliccare sul pulsante Installa per procedere con l'installazione.
    Windows 10, Installa una nuova funzionalità
    FIG 4 - Windows 10, Installa una nuova funzionalità



Disinstallazione di OpenSSH Client/Server tramite GUI

I passaggi sono analoghi a quanto visto per l'installazione.
  • Avviare l'app Impostazioni (WIN+I) quindi cliccare su App;
  • Nella sezione App e funzionalità cliccare sul link Gestisci funzionalità facoltative;
  • Dall'elenco delle funzionalità installate selezionare quella che si intende disinstallare e cliccare sul pulsante Disinstalla per procedere con la rimozione.

    Windows 10, Disinstallazione funzionalità aggiuntive
    FIG 5 - Windows 10, Disinstallazione funzionalità aggiuntive



Installazione di OpenSSH Client/Server tramite PowerShell

  • Per accertarsi che le funzionalità OpenSSH siano disponibili per l'installazione utilizzare il comando
    Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
    PowerShell, Get-WindowsCapability
    FIG 6 - PowerShell, Get-WindowsCapability
  • Per installare il Client OpenSSH eseguire
    Add-WindowsCapability -Online -Name OpenSSH.Client*
  • Per installare il Server OpenSSH eseguire
    Add-WindowsCapability -Online -Name OpenSSH.Server*
    PowerShell, Add-WindowsCapability per installare nuove funzionalità
    FIG 7 - PowerShell, Add-WindowsCapability per installare nuove funzionalità
Terminata l'installazione sarà possibile utilizzare dal prompt dei comandi o da PowerShell i seguenti comandi SSH:
ssh.exe
scp.exe
sftp.exe
ssh-add.exe
ssh-agent.exe
ssh-keygen.exe
ssh-keyscan.exe

Gli eseguibili sopra riportarti si trovano all'interno della cartella
C:\Windows\System32\OpenSSH\ 
mentre i file di SSH relativi ai nomi host noti, alle chiavi generate ecc. si trovano nel seguente percorso
%USERPROFILE%\.ssh\ 





Disinstallazione OpenSSH Client/Server tramite PowerShell

La disinstallazione di OpenSSH Client/Server può essere eseguita tramite il cmdlet Remove-WindowsCapability 
  • Per disinstallare il client OpenSSH da PowerShell eseguire
    Remove-WindowsCapability -Online -Name OpenSSH.Client*
  • Per disinstallare il server OpenSSH  eseguire
    Remove-WindowsCapability -Online -Name OpenSSH.Server*




Configurazione iniziale di OpenSSH Server

Per eseguire la configurazione iniziale di OpenSSH Server, lanciare una sessione PowerShell come amministratore ed eseguire i seguenti comandi
  • Avviare il servizio sshd con il comando
    Start-Service sshd
  • Impostare l'avvio Automatico del servizio eseguendo
    Set-Service -Name sshd -StartupType 'Automatic'
  • Durante l'installazione di OpenSSH Server viene creata e abilitata una regola sul firewall (OpenSSH-Server-In-TCP) per consentire le connessioni in SSH in ingresso. Verificare la presenza della regola sul firewall con il comando
    Get-NetFirewallRule -Name *ssh*
PowerShell, Configurazione iniziale di OpenSSH Server
FIG 8 - PowerShell, Configurazione iniziale di OpenSSH Server



Connessione al server SSH

Sulle postazioni dove è installato il client OpenSSH è possibile connettersi al server eseguendo il comando
ssh username@servername

Al primo accesso al server verrà mostrato un messaggio come quello in FIG 9.
PowerShell, Connessione al server OpenSSH
FIG 9 - PowerShell, Connessione al server OpenSSH

Rispondendo yes si prosegue con la connessione e verrà richiesto l'inserimento della password di accesso.

A connessione avvenuta il server verrà aggiunto all'elenco locale degli host noti e  verrà mostrato un prompt del tipo
domain\username@SERVERNAME C:\Users\username>