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

Respuestas:

33

Tratar:

sftp -o "IdentityFile=keyname" [email protected]

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

Celada
fuente
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
UtahJarhead
fuente
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

Anshu
fuente
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 [email protected]

¡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 :)

KhaledMohamedP
fuente
¿Por qué esperas que esto sea útil cuando la pregunta dice que la -iopción no funciona?
Scott