CH-J Server Managergestione server su SSH
Menu
Tutte le guide e gli articoli →

Come connettersi tramite un jump host SSH (bastion)

Raggiungi i server interni tramite uno o più jump host, verifica ogni chiave host ed evita l’inoltro dell’agente.

A cosa serve un jump host

Un jump host, detto anche bastion, è un server che puoi raggiungere direttamente e che può raggiungere i tuoi server interni. Solo la porta SSH del bastion è esposta; i server interni accettano SSH esclusivamente dalla rete interna. Con ProxyJump il client apre una connessione SSH al bastion e una seconda connessione, cifrata da un estremo all’altro, che lo attraversa per raggiungere la destinazione. Il bastion inoltra il traffico ma non vede il contenuto della sessione, e la chiave privata rimane sul tuo computer.

Connettiti dalla riga di comando

L’opzione -J specifica il jump host. Separa più passaggi con virgole: vengono utilizzati nell’ordine indicato. Se usi regolarmente lo stesso percorso, aggiungi le impostazioni a ~/.ssh/config, così basterà un breve alias.

ssh -J admin@bastion.example admin@app.internal
ssh -J admin@bastion.example,ops@hop2.example admin@app.internal

# ~/.ssh/config
Host app-internal
    HostName app.internal
    User admin
    ProxyJump admin@bastion.example

Verifica ogni chiave host

Ogni passaggio è un server SSH distinto con una propria chiave host, quindi conferma l’impronta del bastion e quella della destinazione attraverso un altro canale fidato. Una chiave cambiata in qualsiasi passaggio richiede la stessa attenzione di una connessione diretta. Confronta l’impronta proposta alla prima connessione con il valore letto da un amministratore sul server.

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256

Preferisci ProxyJump all’inoltro dell’agente

L’inoltro dell’agente (ssh -A) consente a chiunque abbia diritti sufficienti sul bastion di usare le tue chiavi caricate mentre sei connesso. ProxyJump non ne ha bisogno, perché l’autenticazione alla destinazione avviene dal tuo computer. Evita anche di memorizzare chiavi private sul bastion e limita chi può accedervi.

Problemi comuni

Per prima cosa individua il passaggio che non funziona: connettiti solo al bastion, poi esegui ssh -vvv con -J per vedere dove si interrompe la connessione. Se il bastion funziona ma la destinazione no, di solito la causa è un firewall tra i due, un nome interno errato o una destinazione che non accetta la tua chiave. Un server configurato con AllowTcpForwarding no rifiuta di fungere da jump host.

Jump host in CH-J Server Manager

Alpha 0.1.1 si connette tramite un jump host salvato o inserito manualmente, e gli host salvati possono formare una catena di un massimo di tre jump host. La chiave host viene verificata a ogni passaggio. Il monitor di disponibilità controlla un server dietro un jump host solo tramite una sessione aperta verso quel jump host; in caso contrario mostra il server come non verificato, mai come online. Beta 0.1.0 non dispone di questa funzione.

Documentazione dettagliata

OpenSSH: ssh (-J) →

OpenSSH: ssh_config (ProxyJump) →

Sblocco biometrico e sicurezza →