Como posso iniciar automaticamente um túnel SSH no login para um proxy SOCKS?

9

Eu sei que se eu quiser iniciar um túnel SSH

ssh -d 9000 user@userserver

Esta é uma solução para um túnel dinâmico ser aberto na porta 9000 para um usuário chamado "usuário" no host "userserver"

No entanto, como posso automatizar esse processo no Ubuntu para que eu não precise abrir um terminal toda vez que eu fizer login e iniciar o túnel? Eu quero ser SSH no momento em que fizer o login.

Eu sei que eu poderia criar um arquivo bash, mas eu não teria que armazenar a senha do usuário do servidor em texto simples, como eu seria solicitado após o comando inicial?

    
por dalanmiller 25.04.2011 / 15:30

4 respostas

9

  1. Configure o login SSH sem senha de acordo com esta resposta :

    • ssh-keygen (você será solicitado a fornecer uma senha, deixe em branco)

    • ssh-copy-id user@userserver (insira sua senha de login SSH pela última vez)

  2. Adicione uma entrada de inicialização para o SSH:

    
por Oxwivi 04.06.2011 / 18:58
1
Que tal usar uma configuração de chave ssh, como o Source Lab sugeriu, mas configurar sua chave com uma frase secreta e garantir que o ssh-agent esteja em execução na sua máquina, de forma que ela só precise ser digitada uma vez por sessão de login. / p>

Existem algumas vantagens em fazer isso da seguinte maneira:  - Você pode obter um login automatizado sem senha (além do primeiro boot / login) sempre que você emitir o comando ssh  - Sua chave tem uma frase secreta, então é mais seguro  - O uso de chaves pub / private é muito padrão e será suportado pela maioria das instalações do SSH Server

Para configurar a autenticação por chave SSH:

Para usar o ssh-agent / keychain (para armazenar a senha em toda a sessão de login):

No que diz respeito à automatização da criação de túneis na inicialização, uma ideia pode ser criar um script de shell rápido que inicie o encapsulamento:

~$ 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

Em seguida, adicione-o como um programa de inicialização (Sistema - > Preferências - > Aplicativos de inicialização), deve funcionar, de qualquer maneira!

    
por kwiksand 25.04.2011 / 21:04
0

Eu escrevi um pequeno script para isso: link

    
por PHLAK 09.11.2011 / 15:51
-1
sudo ssh-keygen #type Enter everywhere
sudo cat /home/root/.ssh/ id_dsa.pub >> .ssh/authorized_keys

/etc/rc.local adicione uma string:

echo "ssh socks 192.168.0.1:8000" ; sudo ssh -fND 192.168.0.1:8000 localhost
    
por user189643 03.09.2013 / 03:00