
¿Es posible crear un único túnel SSH para abordar un host remoto como si estuviera en el sistema local, por ejemplo? escriba los siguientes pseudoejemplosen la zonay lograr el efecto deseado:
- Copiar bases de datos:
mysqldump remote | mysql local
omysqldump local | mysql remote
- Agregar texto a archivos remotos:
echo blah >> remote:file.txt
- Cambiar archivos remotos:
sed ... remote:file.txt
- Ejecutar comandos remotos:
apk add blah
Si no es posible una única conexión, ¿cuál es la forma más conveniente de lograr estas cosas?
Respuesta1
Para acceder a MySQL remoto, puede utilizar localhost:12345 reenviando:
ssh -Nf -L 12345:localhost:3306 user@remote
Para las operaciones de archivos, puede montar el host remoto mediante sshfs:
mkdir /tmp/remote
sshfs user@remote:/ /tmp/remote
echo blah >> /tmp/remote/file.txt
sed ... /tmp/remote/file.txt
La ejecución de comandos remotos funciona normalmente a través de ssh:
ssh user@remote command ....
Puedes hacer todo esto usando una sola conexión.si agrega esto a su ~/.ssh/config:
ControlMaster auto
ControlPath ~/.ssh/masters/%l%r@%h:%p
La primera conexión ssh será la maestra y las siguientes la reutilizarán. Las nuevas conexiones esclavas estarán disponibles muy rápidamente. Sin gastos generales iniciales de intercambio de claves, etc.