Come eseguire uno script con login ssh ed eseguire un altro script dopo che il primo termina?


0

Sto cercando di eseguire uno script / shell subito dopo aver effettuato l'accesso tramite ssh al mio host con un "guestUser" la missione di questo utente è quella di connettersi a un altro host remoto tramite ssh, ho creato questo utente sul mio host:

guestUser:x:1234:1234::/home/guest:/bin/bash

Quindi, nella directory guest ho un .bashrcfile in cui lo aggiungo, seguendo questa risposta ( Linux: come eseguire automaticamente i comandi sul login SSH? ):

if[[ -n $SSH_CONNECTION ]] ; then
  ssh 192.198.1.99
fi

L'ho fatto perché in questo passaggio ho bisogno di "guestUser" che introduce sshUserInRemoteTwo e sshUserPasswordInRemoteTwo. Non funziona. Lo script tenta di accedere a "guestUser" remoteHostTwocome "guestUser", non è questo l'obiettivo, ho bisogno che lo script richieda user / password.

Se capisco che funziona: lo script richiede utente / password e effettua il login correttamente sul secondo host, quindi, una volta terminata la connessione SHH con il secondo host, guestUser è offline sul mio host; perché al momento la connessione SSH è terminata e l'utente mantiene il mio host.

Risposte:


0

Provare:

ssh <username>@192.198.1.99

O:

ssh -l <username> 192.198.1.99

Sostituisci la linea nel tuo frammento .bashrc sopra con uno di questi moduli.

Ti verrà chiesta una password per questa connessione non appena esegui l'accesso. Potresti voler sbarazzartene usando un accesso senza password .

man ssh


ok, e una volta terminata questa connessione, cosa posso fare per disconnettere guestUSer anche dal primo host?
Di36o,

Per impostazione predefinita, tutti i server SSH hanno un timeout di connessione. SSH mantiene una connessione solo finché i pacchetti keep alive vengono inviati continuamente. Il mio suggerimento è di chiudere semplicemente la finestra del terminale per chiudere entrambe le connessioni in pochi minuti. Se sei in modalità utente singolo exit, digita , premi entere digita exitancora una volta.
Krowe,

L'ho fatto, scrivo exitma non è questo l'obiettivo, perché ho bisogno di una richiamata o qualcosa di simile. Uno script per disconnettersi da firstHost. Accedo al primo host solo perché questo è l'unico host sicuro / autorizzato a connettersi al secondo, una volta che la sessione SSH sul secondo host, ho bisogno di disconnettermi immediatamente dal primo. Cercando su Google, ho scoperto che "potevo" usare un demone per ascoltare la sessione SSH, una volta terminata, il demone esegue lo script di disconnessione, ma non so come implementarlo.
Di36o,

0

Se si desidera la volontà remota come proxy non è necessario creare un utente speciale. È possibile farlo creando aut per chiave e limitare questa chiave per eseguire incondizionatamente il comando specificato

man authorized_keys
...
command="command"
         Specifies that the command is executed whenever this key is used for authentication.

In questo comando è possibile concatenare la connessione ssh.

Ma meglio a questo scopo utilizzare il port forwarding.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.