autossh -ND na inicialização do Ubuntu

5

Eu configurei o login sem chave em um servidor remoto. Eu uso o servidor remoto para encapsular meus dados. Eu quero o meu sistema local para ssh no servidor remoto no momento da inicialização automaticamente.

Eu tentei as soluções sugeridas nos links a seguir, mas nenhuma delas funcionou para mim:

  1. Como iniciar um túnel SSH com upstart
  2. Como faço para fazer um script ser executado na inicialização da máquina Ubuntu?
  3. Autossh com o Ubuntu Upstart

Eu fiz o que foi mencionado nesses posts. O comando autossh deve abrir uma porta ( 9090 no meu caso) para que eu possa encapsular meu tráfego. Depois de aplicar cada um desses métodos, reiniciei o PC e, após a reinicialização, executei nmap para ver se a porta específica estava ou não ouvindo. Infelizmente, em cada caso a porta ainda estava fechada, então eu tenho que inserir manualmente o comando no terminal toda vez que eu reinicio meu PC.

Alguém pode me ajudar? Observe que o servidor remoto e meu sistema local estão executando o Ubuntu 14.04, e o sistema local não possui uma GUI instalada.

    
por Faisal 17.04.2015 / 10:46

1 resposta

3

Eu tenho este pequeno script mantido em ~/bin/infinite_ssh (1):

#! /bin/bash -x
#
while :; do 
         ssh -R 2222:localhost:22 remoteserver sleep 86400
         sleep 10
done

isso está se conectando ao remoteserver e cria um túnel para trás para que no servidor remoto eu possa ssh meu desktop usando ssh -p 2222 localhost . Seu aplicativo pode, obviamente, variar. O remoteserver é definido em ~/ssh/config para que você possa efetuar login sem uma senha e tenha a opção KeepAlive on .

Então você pode chame de /etc/rc.local com

su -l youruser -c /home/youruser/bin/infinite_ssh &

para que ele comece como seu usuário no momento da inicialização, em segundo plano.

Notas de rodapé:

(1) obviamente, você precisa dar a permissão de execução do script ... chmod a+x ~/bin/infinite_ssh .

    
por Rmano 17.04.2015 / 11:27

Tags