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