Come usare il comando openssh sftp con una chiave RSA / DSA specificata dalla riga di comando


35

Il comando Openssh ssh e scp ha fornito -iun'opzione della riga di comando per specificare il percorso della chiave RSA / DSA da utilizzare per l'autenticazione.

Guardando le pagine man di sftp non sono riuscito a trovare un modo per specificare la chiave RSA / DSA.

Sto cercando un modo per avviare una sessione sftp che utilizzerà una chiave RSA / DSA specificata e non le chiavi ~ / .ssh / id_ {dsa, rsa}.

Ho provato il client sftp di OpenSSH su Linux ... ma dovrebbe avere le stesse opzioni su altre piattaforme.


2
Si prega di specificare quale client sftp si sta utilizzando su quale piattaforma.
dmourati,

Risposte:


41

Una potenziale opzione è quella di utilizzare sftp -oIdentityFile=/path/to/private/keyfile. Hai bisogno di maggiori informazioni per dire se funzionerà per te. Sembra funzionare su Mac / Linux.


11

Puoi semplicemente usare l' -iargomento per il tuo comando sftp o ssh.

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

Se l'opzione -i non è disponibile, è possibile utilizzare l'opzione -o con una sintassi come:

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

4
sftp non ha un'opzione -i che è presumibilmente il motivo per cui l'OP sta ponendo la domanda.
user9517 supporta GoFundMonica

funziona con i miei host Linux ma non con il mio laptop Mac dove l'opzione -i non sembra esistere.
dmourati,

I miei host Ubuntu e CentOS non hanno un interruttore -i per sftp
user9517 supporta GoFundMonica

Il mio client CentOS fa: [dmourati @ flexo ~] $ cat / etc / redhat-release CentOS release 5.6 (Final) [dmourati @ flexo ~] $ which ssh / usr / bin / ssh [dmourati @ flexo ~] $ which sftp / usr / bin / sftp [dmourati @ flexo ~] $ rpm -qf / usr / bin / sftp openssh-client-4.3p2-72.el5 [dmourati @ flexo ~] $ man sftp [dmourati @ flexo ~] $ man sftp | head SFTP (1) BSD General Commands Manual SFTP (1) NAME sftp - programma di trasferimento file sicuro SINOSSI sftp [-1246Cpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-D sftp_server_path] [-F ssh_config ] [-i identity_file]
dmourati,

1
@dmourati: E il mio non [iain @ centos ~] $ what ssh / usr / bin / ssh [iain @ centos ~] $ which sftp / usr / bin / sftp [iain @ centos ~] $ rpm -qf / usr / bin / sftp openssh-client-4.3p2-72.el5_6.3 [iain @ centos ~] $ man sftp | head SFTP (1) Manuale di comandi generali BSD SFTP (1) NAME sftp - programma di trasferimento file sicuro SYNOPSIS sftp [- 1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S program] [-s sottosistema | sftp_server] host sftp [[user @] host [: file [file]]]
user9517 supporta GoFundMonica

8

È possibile creare un file di configurazione alternativo per la connessione e usare l' -Finterruttore per dire a ssh di usarlo. creare un file di configurazione, ad esempio ~ / .ssh / config.sftp con i contenuti

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

quindi chiama sftp in questo modo

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

La configurazione precedente limita l'uso della chiave alternativa (quando viene utilizzato questo file di configurazione) all'utente RemoteUserName su remote.host.tld.

Dai un'occhiata alla pagina man di ssh_confg per l'utilizzo del file di configurazione alternativo


Grazie mille per il tuo aiuto! La soluzione fornisce un'alternativa chiara agli argomenti della riga di comando. Per ora, preferisco passare tutti gli argomenti tramite riga di comando, poiché sto già utilizzando -oPort = ALT_PORT.
Adi Roiban,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.