¿Cómo uso mi archivo de claves para transferir datos de un servidor a otro?


25

No puedo scp, el otro servidor solo toma conexiones sftp.

Actualmente estoy tratando de hacer

sftp jay@server.name.com:/files> put -r ~/

-i keynameno funciona, solo se resuelve con illegal option -- i.

Respuestas:


33

Tratar:

sftp -o "IdentityFile=keyname" jay@server.name.com

Puede usar -opara pasar cualquier opción que sea válida en ~/.ssh/config.


Dado en el clavo. ¡Gracias! ¿Cómo lo mantengo allí normalmente?
Jay

No sé a qué te refieres con "mantenlo allí normalmente". Si quiere decir que desea que la IdentityFileopción siempre se brinde automáticamente, consulte la respuesta de UtahJarhead acerca de cómo colocarla~/.ssh/config
Celada

3

Copie su clave PÚBLICA al servidor utilizando los medios tradicionales.

En el servidor:

  • Crear .sshsi no existe:
[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
  • Implemente la clave pública:
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / Authorized_keys"
  • Establecer los permisos apropiados. OpenSSH es MUY ANAL sobre los permisos de los archivos en cuestión:
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh / Authorized_keys"

Después de eso, debería poder iniciar sesión desde el cliente utilizando la clave PRIVADA. Para automatizar una transferencia, desea utilizar un archivo por lotes, que es solo un archivo de texto que contiene una lista de comandos para ejecutar.

echo "poner filename.foo /safe/path/filename.foo" >> /tmp/batchfile.txt
sftp -b /tmp/batchfile.txt -oIdentityFile = / ruta / a / private_key user @ host

Alternativamente, siéntase libre de crear un archivo ~ / .ssh / config en formato ssh_config para que pueda escribir esto en el futuro:

sftp -b /tmp/batchfile.txt host

Contenido de muestra de ~/.ssh/config

Host the_hostname
    Usuario nombre_usuario
    IdentityFile / ruta / a / private_key

Intentaré esto en el próximo lote, aunque la solución anterior funcionó.
Jay

1

Si está buscando configurar sftp en ec2, este artículo podría ayudarlo


Lo siento, realmente no.
Jay

1
Esta "respuesta" no tiene nada que contribuir a la pregunta. Peor aún, es solo un enlace a una página que algún día desaparecerá.
John Mayor

0

Me metí en este problema recientemente y lo que funcionó para mí en la configuración predeterminada de mi terminal MacBook es lo siguiente

sftp -i ./privateFilePath.key username@url.com

¡Tenga en cuenta que puede ser promovido con un archivo de clave privada no protegido! mensaje en cuyo caso debe ejecutar este comando para asegurarse de que otras personas no puedan acceder a su clave privada.

chmod 600 privateFilePath.key 

En algunos casos, debe colocar sudo delante del comando, esto es solo si está trabajando en un directorio protegido por el administrador

Deseo que sea útil :)


¿Por qué esperas que esto sea útil cuando la pregunta dice que la -iopción no funciona?
Scott
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.