Esta resposta pertence a brandonchecketts .
Suponha que você tenha dois hosts nomeados como Host-A e Host-B. Agora vamos criar um túnel SSH entre esses dois e garantir que o túnel esteja funcionando & amp; viver o tempo todo.
Configuração Precisa ser feita para o Host-A:
Abra seu terminal, vire root e cole o código um após o outro
useradd -d /home/tunnel tunnel
passwd tunnel
su - tunnel
o próximo passo é criar uma chave SSH
No terminal colar como
ssh-keygen
e escolha a opção padrão para todos os pedidos e copie a chave com
cat /.ssh/id_rsa.pub
Agora, desta vez, temos que configurar o Host-B
Abra seu terminal e execute estes comandos
useradd -d /home/tunnel tunnel
passwd tunnel
su - tunnel
e no tipo de terminal como
mkdir .ssh
vi .ssh/authorized_keys
Ele abrirá um arquivo no terminal e colará a chave copiada acima do Host-A.
Agora, no tipo de terminal,
vi /home/tunnel/check_ssh_tunnel.sh
e cole como
createTunnel() {
/usr/bin/ssh -f -N -L13306:hostb:3306 -L19922:hostb:22 tunnel@hostb
if [[ $? -eq 0 ]]; then
echo Tunnel to hostb created successfully
else
echo An error occurred creating a tunnel to hostb RC was $?
fi
}
## Run the 'ls' command remotely. If it returns non-zero, then create a new connection
/usr/bin/ssh -p 19922 tunnel@localhost ls
if [[ $? -ne 0 ]]; then
echo Creating new tunnel connection
createTunnel
fi
salve e feche e torne-o executável com
chmod 700 /home/tunnel/check_ssh_tunnel.sh
e, em seguida, execute o script, ele iniciará um túnel com o PC remoto.
Leia o link acima, é obrigatório.