Respuestas:
Tratar:
sftp -o "IdentityFile=keyname" jay@server.name.com
Puede usar -o
para pasar cualquier opción que sea válida en ~/.ssh/config
.
IdentityFile
opción siempre se brinde automáticamente, consulte la respuesta de UtahJarhead acerca de cómo colocarla~/.ssh/config
Copie su clave PÚBLICA al servidor utilizando los medios tradicionales.
En el servidor:
.ssh
si no existe:[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / Authorized_keys"
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
Si está buscando configurar sftp en ec2, este artículo podría ayudarlo
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 :)
-i
opción no funciona?