GNU/Linux >> Linux Esercitazione >  >> Linux

Come ssh tramite host (jumpserver) per raggiungere un altro server

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

Linux
  1. Come aumentare il timeout della connessione SSH

  2. Come eseguire Ssh su un server utilizzando un altro server??

  3. Come configurare SSH senza password su Linux

  4. Come usare ssh come un altro utente

  5. Come abilitare l'inoltro SSH X11 tramite un server aggiuntivo?

Come ospitare un sito Web su un server Web Apache

Come utilizzare SSH per connettersi a un server remoto

Come aggiungere la chiave pubblica SSH al server

Come configurare SSH su CentOS e RHEL

Come eseguire l'SSH sul server tramite Linux

Come proteggere SSH con Fail2Ban