Cómo usar el comando openssh sftp con una clave RSA / DSA especificada desde la línea de comando


35

El comando Openssh ssh y scp proporcionó una -iopción de línea de comando para especificar la ruta a la clave RSA / DSA que se utilizará para la autenticación.

Mirando las páginas de manual de sftp no pude encontrar una manera de especificar la clave RSA / DSA.

Estoy buscando una manera de iniciar una sesión sftp que use una clave RSA / DSA especificada, y no las teclas ~ / .ssh / id_ {dsa, rsa}.

Intenté el cliente OpenSSH sftp en Linux ... pero debería tener las mismas opciones en otras plataformas.


2
Especifique qué cliente sftp está utilizando en qué plataforma.
— dmourati

Respuestas:


41

Una opción potencial es usar sftp -oIdentityFile=/path/to/private/keyfile. Necesita más información para decir si eso funcionará para usted. Parece funcionar bajo Mac / Linux.


11

Simplemente puede usar el -iargumento para su comando sftp o ssh.

sftp -i /path/to/private/keyfile ...

Si la opción -i no está disponible, puede usar la opción -o con una sintaxis como:

sftp -oIdentityFile=/path/to/private/keyfile ...

44
sftp no tiene una opción -i, que es probablemente la razón por la cual el OP hace la pregunta.
— user9517 es compatible con GoFundMonica

funciona en mis hosts Linux pero no en mi computadora portátil Mac, donde la opción -i no parece existir.
— dmourati

Mis hosts Ubuntu y CentOS no tienen un conmutador -i para sftp
— user9517 es compatible con GoFundMonica

Mi cliente CentOS hace: [dmourati @ flexo ~] $ cat / etc / redhat-release CentOS versión 5.6 (Final) [dmourati @ flexo ~] $ que ssh / usr / bin / ssh [dmourati @ flexo ~] $ que sftp / usr / bin / sftp [dmourati @ flexo ~] $ rpm -qf / usr / bin / sftp openssh-clients-4.3p2-72.el5 [dmourati @ flexo ~] $ man sftp [dmourati @ flexo ~] $ man sftp | cabezal SFTP (1) Manual de comandos generales de BSD SFTP (1) NOMBRE sftp - programa de transferencia segura de archivos SINOPSIS sftp [-1246Cpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-D sftp_server_path] [-F ssh_config ] [-i
— archivo_de_identidad

1
@dmourati: Y el mío no [iain @ centos ~] $ que ssh / usr / bin / ssh [iain @ centos ~] $ que sftp / usr / bin / sftp [iain @ centos ~] $ rpm -qf / usr / bin / sftp openssh-clients-4.3p2-72.el5_6.3 [iain @ centos ~] $ man sftp | head SFTP (1) Manual de comandos generales BSD SFTP (1) NOMBRE sftp - programa de transferencia segura de archivos SINOPSIS sftp [- 1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S programa] [-s subsistema | sftp_server] host sftp [[usuario @] host [: archivo [archivo]]]
— user9517 es compatible con GoFundMonica

8

Puede crear un archivo de configuración alternativo para la conexión y usar el -Finterruptor para indicarle a ssh que lo use. crear un archivo de configuración, por ejemplo, ~ / .ssh / config.sftp con el contenido

Host remote.host.tld
User RemoteUserName
IdentityFile /path/to/atlernate/identityfile

entonces llama a sftp así

sftp -F ~/.ssh/config.sftp remote.host.tld
Connecting to remote.host.tld...
Enter passphrase for key '/path/to/atlernate/identityfile':
sftp>

La configuración anterior restringe el uso de la clave alternativa (cuando se usa este archivo de configuración) al usuario RemoteUserName en remote.host.tld.

Eche un vistazo a la página de manual para ssh_confg para el uso del archivo de configuración alternativo


¡Muchas gracias por su ayuda! Su solución proporciona una alternativa limpia a los argumentos de la línea de comandos. Por ahora, prefiero pasar todos los argumentos a través de la línea de comandos, ya que estoy usando -oPort = ALT_PORT.
— Adi Roiban
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.