configurazione ssh per salti multipli più "sudo su"

Oct 16 2020

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

1 jeb Oct 20 2020 at 06:17

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

ArkadiuszDrabczyk Oct 16 2020 at 18:10

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.