configurazione ssh per salti multipli più "sudo su"
Ho una configurazione particolare che richiede questa sequenza di passaggi:
ssh me@host1
ssh me@host2
sudo su otheruser
Io ho:
- una chiave ssh sul mio laptop che me lo consente
ssh me@host1 - una chiave ssh su host1 che me lo consente
ssh me@host2.
Io non ho il permesso di ssh otheruser@host2.
Il mio obiettivo è: posso automatizzare questo? Preferibilmente nel file ~ / .ssh / config del mio laptop, quindi posso semplicemente fare:
ssh otheruser
... e lasciare che la configurazione si occupi dei dettagli, idealmente inclusa la password?
Posso già ottenere 2/3 del percorso con la seguente configurazione ssh:
Host host1
HostName host1.example.com
Host host2
HostName host2.example.com
Host mostly_there
HostName host2.example.com
ProxyJump host1 host2
Quanto sopra me lo permette ssh mostly_therema devo ancora farlo sudo su otheruser.
Risposte
Puoi usarlo in .ssh / config:
HOST host1
user me
HOST host2
USER me
ProxyCommand ssh host1 -W %h:%p
HOST otheruser
USER me
ProxyCommand ssh host1 -W %h:%p
RemoteCommand sudo su -c '/bin/bash -i' otheruser
Per connettersi a host2 con l'utente altro utente basta usare:
ssh otheruser
Attualmente ha lo svantaggio di non essere una shell interattiva completa, ma potrebbe essere risolto con una chiamata migliore di /bin/bash -i
Se disponi di root, puoi distribuire la tua chiave pubblica su otheruserauthorized_keys e accedere senza utilizzare una password. Dopo essere passato a otheruserfare questo:
mkdir -p ~/.ssh
e metti la tua chiave pubblica in ~ / .ssh / authorized_keys. Ora dovresti essere in grado di accedere da remoto come otherusersemplicemente facendo ssh otheruser@host.