http://support.svi.nl/wiki/ScpBatchMode
Copiar ficheros con comando scp y conectarse via ssh a través de un proxy que solo deje salir por los puertos 80 y 443 sin ser preguntado por contraseña
Requisitos previos:
a. El pc destino tiene que tener mapeado el puerto 443 (SSL) al 22 (ssh)
b. El pc origen tiene que tener instalado y configurado corkscrew
c. El usuario que ejecuta scp en el pc origen debe existir también en el pc destino
Procedimiento:
1. Generar un par de claves en el pc origen:
ssh-keygen -t dsa
Se ha generado el siguiente fichero:
/mi_usuario/.ssh/id_dsa.pub
2. Entrar en '/mi_usuario/.ssh'
3. Cambiar los permisos de 'id_dsa.pub'
chmod 600 id_dsa.pub
4. Copiar la clave pública al pc destino usando corkscrew. 2 posibilidades:
4.1 (Poco frecuente) ya existe '/mi_usuario/.ssh/authorized_keys' en el pc destino:
4.1.1. Copiar las claves públicas a otro fichero
scp -P 443 -F /ruta/config/corkscrew/conexion id_dsa.pub usuario_pc_destino@ip_pc_destino:~/.ssh/auxiliar
4.1.2. Conectarse al pc destino via ssh
ssh -p 443 -F /ruta/config/corkscrew/conexion usuario_pc_destino@ip_pc_destino
4.1.3. Teclear la clave del usuario del pc_destino y pulsar enter
4.1.4. Añadirle el contenido de 'auxiliar' al final de 'authorized_keys'
cat /mi_usuario/.ssh/auxiliar >> /mi_usuario/.ssh/authorized_keys
4.1.5. Salir de la sesión ssh del pc destino
exit
4.2. (Más probable) no existe '/mi_usuario/.ssh/authorized_keys' o lo que contiene puede ser machacado:
4.2.1 Copiar la clave pública:
scp -P 443 -F /ruta/config/corkscrew/conexion id_dsa.pub usuario_pc_destino@ip_pc_destino:~/.ssh/authorized_keys
Puede salir el siguiente mensaje de error e interrumpirse el proceso:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is 6f:ae:d1:45:a5:c2:dc:98:52:45:b7:f4:a2:73:be:31. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending key in /root/.ssh/known_hosts:5 RSA host key for peluca.mine.nu has changed and you have requested strict checking. Host key verification failed. lost connection
En mi caso se debió a que reinstalé el sistema operativo en la máquina destino y por eso cambió la huella dactilar de la misma.
SOLUCIÓN:
Eliminar las entradas que hagan referencia a ip_pc_destino en /mi_usuario/.ssh/known_hosts. Si no se quiere uno calentar la cabeza, se carga el fichero.
4.2.3. Introducir, por última vez :) , la clave de usuario del pc destino y pulsar enter
5. En unos segundos el fichero se ha copiado. Probar ahora a conectarse sin que nos pida la clave:
ssh -p 443 -F /ruta/config/corkscrew/conexion usuario_pc_destino@ip_pc_destino