In questa guida impareremo come semplificare il processo utilizzando le opzioni che ssh client ci fornisce, incluso l'utilizzo di SSH ProxyCommand
comando.
Contenuti correlati:
- SSH:generazione e utilizzo di chiavi ssh
Lo scenario SSH
Ecco come è la configurazione di ssh.
+--------------+ +------------+ +-----------+
| Local machine| -> | JumpServer | -> | Dbserver |
+--------------+ +------------+ +-----------+
È possibile accedere al server DB solo effettuando il login al server intermedio – Jump Server. Primo accesso al jumpserver
ssh [email protected]
Quindi dal server di salto possiamo accedere al server db
ssh [email protected]
Utilizzo dell'opzione -J per gli ultimi client ssh
Per gli ultimi client ssh, l'opzione -J consente di specificare quale host utilizzare come jump host. Questo è il formato
ssh -J [email protected] [email protected]
Ecco come connettersi al telecomando utilizzando un jump server pubblico
ssh -J [email protected] [email protected]
Se devi specificare una chiave ssh, usa questo formato:
ssh -J [email protected] [email protected] -i ~/.ssh/id_server_key
Utilizzo di ProxyCommand quando l'opzione -J non è disponibile
Nelle versioni precedenti di openssh il -J Non è disponibile. Quindi usa la seguente sintassi:
ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]
Questo è il modo in cui lo uso nella mia macchina locale
ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected] -i ~/.ssh/id_rsa
Per i client meno recenti che non supportano l'opzione -W
In questo caso, ssh -tt comando. Invece di digitare due comandi ssh, posso digitare il seguente comando all-in-one. Questo è utile per la connessione al server db remoto tramite un firewall chiamato jumpserver come host di salto:
ssh -tt [email protected] ssh -tt [email protected]
Utilizzo:
ssh -tt [email protected] ssh -tt [email protected] -i ~/.ssh/id_rsa
Dove:
- Il -t opzione passata all'allocazione pseudo-tty della forza del comando ssh. Questo può essere utilizzato per eseguire programmi arbitrari basati su schermo su una macchina remota. Più -tt le opzioni forzano l'allocazione di tty, anche se ssh non ha tty locale.
Salvataggio della configurazione nel file ~/.ssh/config
Puoi definire le opzioni di configurazione in ~/.ssh/config
file. Ecco come sarebbe la configurazione, specifichiamo il ProxyCommand:
Host dbserver
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh [email protected] -W %h:%p
IdentityFile ~/.ssh/id_rsa
Puoi anche usare ProxyJump
Host dbserver
Hostname 10.70.1.190
User ubuntu
ProxyJump [email protected]
IdentityFile ~/.ssh/id_rsa
Puoi anche concatenare ricorsivamente più host di salto:
Host jumpsrver
Hostname 13.36.234.247
User rocky
Host dbserver2
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh -W %h:%p jumpsrver
IdentityFile ~/.ssh/id_rsa
Host dbserver3
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh -W %h:%p dbserver2
IdentityFile ~/.ssh/id_rsa
In questo modo verrà eseguito il proxy tramite gli altri host
ssh dbserver3