Como posso iniciar automaticamente um túnel SSH-D 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 a ser aberto na porta 9000 para um usuário chamado "user" no host "userserver"

No entanto, como posso automatizar esse processo no Ubuntu para não precisar abrir um terminal toda vez que faço login e inicio o túnel? Quero receber o SSH no momento em que fizer login.

Sei que poderia criar um arquivo bash, mas não precisaria armazenar a senha do usuário do servidor em texto sem formatação, pois seria solicitada após o comando inicial?


3
Você pode configurar chaves ssh em vez de usar uma senha (ver pkeck.myweb.uga.edu/ssh ), mas não importa como sua configuração é que você vai ser comprometer a segurança se você automatizar o login do ...
LassePoulsen

Não é exatamente sobre sua pergunta, mas eu recomendo que você tente usar sshuttlepara rotear sua Internet através de um SSH. Ele não resolve problemas de login sem senha.
Oxwivi

Se você configurar o SSH sem senha como eu respondi, sshuttletambém poderá ser iniciado automaticamente (observe que sshuttlerequer privilégios de administrador para ser executado).
Oxwivi

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 (digite sua senha de login SSH pela última vez)

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

insira a descrição da imagem aqui

insira a descrição da imagem aqui


@ Stefano, obrigado! Metade do crédito é para Rinzwind e Marco, que me informaram sobre o SSH sem senha em primeiro lugar!
Oxwivi

1

Que tal usar uma configuração de chave ssh, como sugeriu o Source Lab, mas configurar sua chave com uma frase secreta e garantir que o ssh-agent esteja sendo executado em sua máquina, para que seja necessário digitar apenas uma vez por sessão de login.

Existem algumas vantagens em fazê-lo desta maneira: - Você pode obter um login automatizado sem senha (além do primeiro boot / login) sempre que emitir seu comando ssh - Sua chave possui uma frase secreta, portanto é mais segura - Usar chaves públicas / privadas é muito padrão e será suportado pela maioria das instalações do servidor SSH

Para configurar a autenticação de chave SSH:

Para usar ssh-agent / keychain (para armazenar em cache a frase secreta durante a sessão de login):

Quanto a automatizar a criação do túnel na inicialização, uma idéia pode ser criar um script de shell rápido que inicie o túnel:

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


Existe alguma maneira de fazer isso através da seção de proxy de rede das configurações no Ubuntu? Existe uma opção para verificação do usuário e você pode pré-inserir seu nome de usuário e senha? Apenas no caso de minhas configurações mudarem, eu não gostaria de entrar e redigitar o arquivo.
dalanmiller

Receio que isso não funcione, nem mesmo com autossh.
Skerit


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

/etc/rc.local add string:

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

Lembre-se de que a configuração de uma chave ssh é dedicada. Aceitar cegamente todos os prompts sem ler o que está sendo feito pode comprometer seu serviço / sistema.
Braiam 8/09/2013
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.