
É possível criar um único túnel SSH para endereçar um host remoto como se estivesse no sistema local, por exemplo. digite os seguintes pseudo-exemploslocalmentee alcançar o efeito desejado:
- Copiar bancos de dados:
mysqldump remote | mysql local
oumysqldump local | mysql remote
- Anexar texto aos arquivos remotos:
echo blah >> remote:file.txt
- Alterar arquivos remotos:
sed ... remote:file.txt
- Execute comandos remotos:
apk add blah
Se uma única conexão não for possível, qual é a maneira mais conveniente de conseguir isso?
Responder1
Para acessar o mysql remoto você pode usar localhost:12345 encaminhando:
ssh -Nf -L 12345:localhost:3306 user@remote
Para as operações de arquivo você pode montar o host remoto via sshfs:
mkdir /tmp/remote
sshfs user@remote:/ /tmp/remote
echo blah >> /tmp/remote/file.txt
sed ... /tmp/remote/file.txt
A execução de comandos remotos funciona normalmente via ssh:
ssh user@remote command ....
Você pode fazer tudo isso usando apenas uma conexãose você adicionar isso ao seu ~/.ssh/config:
ControlMaster auto
ControlPath ~/.ssh/masters/%l%r@%h:%p
A primeira conexão ssh será a master e as próximas a reutilizarão. Novas conexões escravas estarão disponíveis muito rapidamente. Nenhuma sobrecarga inicial de troca de chaves, etc.