Conexión maestra
Es más fácil si planifica con anticipación.
Abra una conexión maestra la primera vez. Para conexiones posteriores, enrute las conexiones esclavas a través de la conexión maestra existente. En su ~/.ssh/config
, configure el uso compartido de la conexión para que se realice automáticamente:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Si inicia una sesión ssh con el mismo (usuario, puerto, máquina) que una conexión existente, la segunda sesión se tunelizará sobre la primera. Establecer la segunda conexión no requiere una nueva autenticación y es muy rápido.
Entonces, mientras tenga su conexión activa, puede rápidamente:
Reenvío
En una conexión existente, puede establecer un túnel ssh inverso. En la línea de comando ssh, cree un reenvío remoto pasando -R 22042:localhost:22
donde 22042 es un número elegido al azar que es diferente de cualquier otro número de puerto en la máquina remota. Luego, ssh -p 22042 localhost
en la máquina remota, se conecta de nuevo a la máquina de origen; puedes usar scp -P 22042 foo localhost:
para copiar archivos.
Puede automatizar esto aún más con RemoteForward 22042 localhost:22
. El problema con esto es que si te conectas a la misma computadora con varias instancias de ssh, o si alguien más está usando el puerto, no obtienes el reenvío.
Si no ha habilitado un reenvío remoto desde el principio, puede hacerlo en una sesión ssh existente. Tipo Enter ~C
Enter -R 22042:localhost:22
Enter. Consulte "Caracteres de escape" en el manual para obtener más información.
También hay información interesante en este hilo de Falla del servidor .
Copiar pegar
Si el archivo es pequeño, puede escribirlo y copiar y pegar desde la salida del terminal. Si el archivo contiene caracteres no imprimibles, use una codificación como base64 .
remote.example.net $ base64 <myfile
(copie la salida)
local.example.net $ base64 -d> myfile
(pegue el contenido del portapapeles)
Ctrl +D
Más convenientemente, si tiene el reenvío X activo, copie el archivo en la máquina remota y péguelo localmente. Puede canalizar datos dentro y fuera de xclip
o xsel
. Si desea conservar el nombre del archivo y los metadatos, copie y pegue un archivo.
remote.example.net$ tar -czf - myfile | xsel
local.example.net$ xsel | tar -xzf -
scp file.foo user@myclient.com:file.foo
: P