
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, -F
siendo 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
Del texto de ayuda: "
... [-F ssh_config] ...
"Según lo anterior,
-F
espera un argumento: ruta a un archivo de configuración OpenSSH,~/.ssh/config
o similar. Pero en su lugar le está dando un volcado de SQL comprimido con gzip.Como Plain
ssh myalias
ya está funcionando, ni siquiera necesitas la-F
opción aquí. Simplementesftp myalias
se conectaría al servidor.Sin embargo, el
sftp
cliente OpenSSH no admite la carga de archivos como lo intenta; solo puede descargar archivos (usando la sintaxishost: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
scp
herramienta: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 scp
para 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.