Come posso avviare automaticamente un tunnel SSH -D all'accesso per un proxy SOCKS?


9

So che se voglio avviare un tunnel SSH

ssh -d 9000 user@userserver

Questa è una soluzione per l'apertura di un tunnel dinamico sulla porta 9000 per un utente chiamato "utente" sull'host "userserver"

Tuttavia, come posso automatizzare questo processo in Ubuntu in modo da non dover aprire un terminale ogni volta che eseguo l'accesso e avvio il tunnel? Voglio essere SSH nel momento in cui eseguo l'accesso.

So che potrei creare un file bash ma non dovrei archiviare la password dell'utente del mio server in testo normale come mi verrebbe richiesto dopo il comando iniziale?


3
È possibile impostare chiavi ssh invece di utilizzare una password (vedi pkeck.myweb.uga.edu/ssh ), ma non importa come la vostra messa a punto è sarete compromettere la sicurezza se si automatizza login di ...
LassePoulsen

Non esattamente sulla tua domanda, ma ti consiglio di provare a utilizzare sshuttleper instradare Internet attraverso un SSH. Non risolve i problemi di accesso senza password.
Oxwivi,

Se si imposta SSH senza password come ho risposto, sshuttlepuò anche essere avviato automaticamente (nota, sshuttleper poter eseguire i privilegi di amministratore).
Oxwivi,

Risposte:


9
  1. Configurare l'accesso SSH senza password in base a questa risposta :

    • ssh-keygen (ti verrà richiesta una password, lasciala vuota)

    • ssh-copy-id user@userserver (inserisci la password di accesso SSH per l'ultima volta)

  2. Aggiungi una voce di avvio per SSH:

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


@Stefano, grazie! La metà del merito va a Rinzwind e Marco, che in primo luogo mi hanno illuminato su SSH senza password!
Oxwivi,

1

Che ne dici di usare una configurazione di ssh-key, come ha suggerito Source Lab, ma impostare la tua chiave con una passphrase e assicurarti che ssh-agent sia in esecuzione sul tuo computer, quindi deve essere inserito solo una volta per sessione di login.

Ci sono alcuni vantaggi nel farlo in questo modo: - Puoi ottenere l'accesso automatico senza password (a parte il primo avvio / accesso) ogni volta che esegui il comando ssh - La tua chiave ha una passphrase quindi è più sicura - L'uso delle chiavi pub / private è molto standard e sarà supportato dalla maggior parte delle installazioni del server SSH

Per impostare l'autenticazione con chiave SSH:

Per utilizzare ssh-agent / keychain (per memorizzare nella cache la passphrase durante la sessione di accesso):

Per quanto riguarda l'automazione della creazione del tunnel all'avvio, un'idea potrebbe essere quella di creare uno script di shell rapido che avvii il tunnel:

~$ sudo cat <<EOF >> /usr/local/bin/start_tunnel.sh
ssh-add # ensure key is added to agent
ssh -D 9000 user@userserver # substitute real server in here (of course)
EOF
~$ chmod +x /usr/local/bin/start_tunnel.sh

Quindi aggiungilo come programma di avvio (Sistema -> Preferenze -> Applicazioni di avvio), dovrebbe funzionare comunque!


Esiste un modo per farlo tramite la sezione proxy di rete delle impostazioni di Ubuntu? Esiste un'opzione per la verifica dell'utente e puoi pre-inserire nome utente e password? Nel caso in cui le mie impostazioni dovessero mai cambiare, non avrei bisogno di accedere e reditere il file.
Dalanmiller,

Temo che non funzioni, nemmeno con l'autossh.
skerit,


-1
sudo ssh-keygen #type Enter everywhere
sudo cat /home/root/.ssh/ id_dsa.pub >> .ssh/authorized_keys

/etc/rc.local aggiungi stringa:

echo "ssh socks 192.168.0.1:8000" ; sudo ssh -fND 192.168.0.1:8000 localhost

Si prega di tenere presente che l'impostazione di un tasto ssh è dedicata. Accettare ciecamente tutte le istruzioni senza leggere ciò che viene fatto potrebbe compromettere il servizio / sistema.
Braiam,
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.