Accesso via JUMPHOST SSH
L'accesso alle workstation Linux interne è disponibile anche attraverso un SSH Jump Host : jump.fbk.eu utilizzando autenticazione basata su chiavi.
Per accedere al servizio si deve spedire la propria chiave pubblica ssh come allegato e-mail a [email protected] indicando nel soggetto : "SSH via jump host access request". La chiave deve essere in formato openssh format ed il file deve avere nome: <fbk_login_name>.pub. La stessa chiave va inserita in ~/.ssh/authorized_keys del computer destinazione per evitare ulteriori richieste di password. Le chiavi ssh-dss (DSA) non sono supportate a causa della loro debolezza. Per la massima compatibilità usare le chiavi RSA.
Linux/Unix/Mac openssh
Da Windows 10 1803 in poi, openssh è installato per impostazione predefinita. Per le versioni precedenti a Windows 10 1803, deve essere installato. La directory di configurazione .ssh si trova in $ENV:HOMEPATH/ per powershell o %HOMEPATH% per cmd. Vedi config_jump_w10 come esempio di file di configurazione ssh di Windows 10.
Per accedere a <hostname>.fbk.eu con la propria chiave pubblica di default (usualmente id_rsa.pub ) il comando ssh e':
ssh -J <fbk_login_name>@jump.fbk.eu <fbk_login_nam>@<hostname>.fbk.eu
second line
Per utilizzare una diversa chiave ssh (jump_key) la sintassi del comando è:
Una soluzione più flessibile è creare un file di configurazione separato, config_jump:
#
# Define the jumphost
#
Host fbkjumphost
Hostname jump.fbk.eu
User <fbk_login_name>
#
# Specify a non default private key
#
IdentityFile ~/.ssh/private_key_file
#
# Match all host except jumphost
#
Host * !fbkjumphost
Hostname %h
#
# Force user name
#
User <fbk_login_name>
#
# Specify a non default private key
#
IdentityFile ~/.ssh/private_key_file
Proxy fbkjumphost da utilizzare nel comando con
ssh -F config_jump <hostname>.fbk.eu</hostname>
NB: -J, -o, -F devono precedere ogni altra opzione
Linux/Unix/Mac/Windows10 scp
La sintassi della copia via ssh (Secure copy) con la chiave di default è:
scp -o ProxyJump=<fbk_login_name>@jump.fbk.eu local_patch <fbk_login_name>@<hostname>.fbk.eu:remote_path
mentre con una chiave pubblica separata il comando diventa
scp -o ProxyCommand="ssh -i ~/.ssh/jump_key -W %h:22 <fbk_login_name>@jump.fbk.eu" - i~/.ssh/jump_key local_path <fbk_login_name>@<hostname>.fbk.eu:remote_path local_path
Più semplice è la copia via file di configurazione config_jump:
scp -F config_jump local_path <fbk_login_name>@<hostname>.fbk.eu:remote_path
NB: -o, -F devono precedere ogni altra opzione
Linux/Unix/Mac/Windows10 rsync
Per utilizzare il remote sync con la chiave di default, di deve aggiungere al comando rsync:
--rsh "ssh -J <fbk_login_name>@jump.fbk.eu -l <fbk_login_name>"
Per utilizzare il remote sync con una chiave diversa:
--rsh "ssh -o ProxyCommand='ssh -i ~/.ssh/jump_key -W %h:22 <fbk_login_name>@jump.fbk.eu' - i ~/.ssh/jump_key -l <fbk_login_name>"
Il remote sync con file configurazione richiede di aggiungere al comando rsync:
--rsh "ssh -F config_jump"
Generazione chiavi SSH Linux/Mac/Windows
Il processo prevede la generazione di una coppia di file di chiavi SSH contenenti una chiave privata e una chiave pubblica. La chiave privata deve essere conservata solo nel computer dell'utente; la chiave pubblica verrà distribuita ai server remoti. Gli utenti devono prestare particolare attenzione a non perdere la chiave privata. Una chiave privata persa non può essere replicata; pertanto, l'utente non può accedere al server remoto fino a quando non viene generata una nuova coppia di chiavi e ridistribuita la chiave pubblica.
Per creare e salvare i file delle chiavi SSH da una shell o da un Terminale, si utilizza il comando ssh-keygen; vedi l'esempio seguente:
test @ demo: ~ $ ssh-keygen
Generazione di coppie di chiavi rsa pubbliche / private.
Inserisci il file in cui salvare la chiave (/home/test/.ssh/id_rsa):
Directory creata '/home/test/.ssh'.
Inserisci passphrase (vuoto per nessuna passphrase)
Le chiavi vengono salvate in una posizione predefinita ( $HOME/.ssh/id_rsa) o, se ne è stata specificata uno, con un nome diverso. La chiave pubblica ha il suffisso .pub.
La passphrase è una password locale per proteggere ulteriormente la chiave privata e non viene mai inviata al server remoto. Se una chiave privata viene rubata è inutile senza la passphrase. Una passphrase vuota è fortemente scoraggiata.
Usare il comando man ssh-keygen per ulteriori informazioni.
Ulteriori riiferimenti
Istruzioni più dettagliate si possono trovare in Jump Hosts -- Passing Through a Gateway, con man ssh and man ssh_config sotto linux o ricercando con Google "ssh jump host".
Windows openssh
Da Windows 10 1803 in poi, openssh è disponibile come riga di comando. Può essere avviato da cmd.exe o powershell.exe. Suggeriamo di installare il nuovo terminale da Microsoft: https://github.com/microsoft/terminal disponibile anche da Microsoft Store.
Windows Putty
Su Windows 10/11 consigliamo di utilizzare il client openssh integrato.
PuTTY puo' utilizzare il jump host con la sua utility plink.exe utility. Per configurare il jump host:
- Una sola volta in un shell CMD lanciare plink.exe <fbk_login_name>@jump.fbk.eu, memorizzare la chiave ed ignorare il messaggio di errore: Fatal Error.
- Caricare la chiave ssh di accesso in Pageant.
Aprire in PuTTY una New Session. In Session , inserire Host Name (or IP address) (<hostname>.fbk.eu) e Port (22) o del host destinazione .
- Sotto Connection, selezionare Proxy, sotto Proxy type selezionare Local. Aggiungere jump.fbk.eu sia in Proxy Hostname che in Exclude Hosts/IPS
- Nella stessa schermata Proxy, aggiungere il proprio <fbk_login_name> come Username ( il campo Password è ignorato);
- Cancellare il contenuto di Telnet command, or local proxy command e sostituirlo con:
plink.exe %user@%proxyhost -agent -nc %host:%port
%user viene sostituito da Username , %proxyhost da Proxy Hostname , %host da Host Name (or IP address).
Per una descrizione completa di Putty vedere Putty.
Generazione chiavi SSH con Putty
Per la generazione ed utilizzo delle chiavi ssh in Putty sotto windows: Use SSH Keys With PuTTY On Windows oppure https://www.ssh.com/ssh/putty/windows/puttygen.
La chiave pubblica utilizzata dal Jump Host deve essere in formato SSH. In PuTTYgen, copiare il contenuto del campo "Public key for pasting into OpenSSH authorized keys file" (Chiave pubblica da incollare nel file delle chiavi autorizzate OpenSSH) e salvarlo su un file; questa è la chiave pubblica.
Windows WinSCP
WinSCP puo' importare ed utilizzare Putty configurations.
Ogni configurazione JumpHost di Putty viene trasformata nell'importazione in una configurazione scp via JumpHost con WinSCP.
Come per Putty la chiave ssh deve essere prima inserita in Pageant.
La configurazione manuale di JumpHost si trova in Advanced Site Settings, sezione Connection->Proxy