¿Usando SCP o SFTP con mi archivo de configuración SSH?

¿Usando SCP o SFTP con mi archivo de configuración SSH?

Me gustaría conectarme y cargar un archivo de volcado de MySQL a través de una terminal usando SFTP o SCP a mi servidor remoto usando mi archivo de configuración SSH. Según la documentación que encontré, debería poder hacer esto:

sftp -F db.sql.gz [email protected] /tmp

También probé el alias en mi configuración:

sftp -F db.sql.gz myalias /tmp

Cuando hago los dos anteriores, simplemente obtengo una copia impresa de los posibles comandos, -Fsiendo uno de ellos.

Ya puedo conectarme a través de SSH usando el acceso directo en mi configuración local, así que sé que funciona:

ssh myalias

Nota: Me estoy conectando usando un par de claves pública/privada, por lo que nunca necesito ingresar una contraseña. El par de claves tiene una frase de contraseña asociada, pero OS X Keychain la recordó la primera vez que me conecté.

¿Entonces no estoy seguro de qué estoy haciendo mal?

Respuesta1

  1. Del texto de ayuda: " ... [-F ssh_config] ..."

    Según lo anterior, -Fespera un argumento: ruta a un archivo de configuración OpenSSH, ~/.ssh/configo similar. Pero en su lugar le está dando un volcado de SQL comprimido con gzip.

    Como Plain ssh myaliasya está funcionando, ni siquiera necesitas la -Fopción aquí. Simplemente sftp myaliasse conectaría al servidor.

  2. Sin embargo, el sftpcliente OpenSSH no admite la carga de archivos como lo intenta; solo puede descargar archivos (usando la sintaxis host:path) o trabajar en modo interactivo. Para cargar, necesita usar el modo interactivo...

    $ sftp myalias
    sftp> cd /tmp
    sftp> put db.sql.gz
    

    ...o la scpherramienta:

    scp db.sql.gz myalias:/tmp
    

    o

    scp db.sql.gz [email protected]:/tmp
    

(sftp tiene un modo por lotes en el que puede leer comandos de un archivo usando -b, pero es más sencillo de usar scppara cargas individuales).

También hay otros clientes SFTP:lftpes bueno para uso interactivo, mientrasrizopuede ser más fácil de automatizar. Para copias de seguridad y demás, también puedes usarsincronización(que ejecuta su propio protocolo pero aún dentro de SSH).

Respuesta2

Problema causado por la configuración de ForwardAgent como se muestra a continuación,

Host dockervm
   HostName x.x.x.x
   User root
   Preferredauthentications publickey
   ForwardAgent yes

En mi caso, se debió a que el 'ForwardAgent' en la configuración ssh provocó que el scp se bloqueara. Una vez que lo comenté, funcionó para mí.

Además, puede tener una copia del archivo con la línea ForwardAgent comentada y usar scp -F para que funcione.

información relacionada