Comment utiliser la commande openssh sftp avec une clé RSA / DSA spécifiée à partir de la ligne de commande


35

La commande Openssh ssh and scp fournissait une -ioption de ligne de commande pour spécifier le chemin d'accès à la clé RSA / DSA à utiliser pour l'authentification.

En regardant les pages de manuel de sftp, je n’ai pas trouvé le moyen de spécifier la clé RSA / DSA.

Je cherche un moyen de lancer une session sftp qui utilisera une clé RSA / DSA spécifiée, et non les clés ~ / .ssh / id_ {dsa, rsa}.

J'ai essayé le client OpenSSH sftp sur Linux ... mais il devrait avoir les mêmes options sur d'autres plateformes.


2
Veuillez spécifier le client sftp que vous utilisez sur quelle plate-forme.
Demourati

Réponses:


41

Une option potentielle est d'utiliser sftp -oIdentityFile=/path/to/private/keyfile. Besoin de plus d'informations pour dire si cela fonctionnera pour vous. Semble fonctionner sous Mac / Linux.


11

Vous pouvez simplement utiliser l' -iargument de votre commande sftp ou ssh.

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

Si l'option -i n'est pas disponible, vous pouvez utiliser l'option -o avec une syntaxe telle que:

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

4
sftp n'a pas l'option -i, ce qui explique probablement pourquoi l'OP pose la question.
user9517 prend en charge GoFundMonica

fonctionne sous mes hôtes Linux mais pas sur mon ordinateur portable Mac où l'option -i ne semble pas exister.
Demourati

Mes hôtes Ubuntu et CentOS ne disposent pas d'un commutateur -i pour sftp
user9517 prend en charge GoFundMonica.

Mon client CentOS fait: [dmourati @ flexo ~] $ cat / etc / redhat-release CentOS version 5.6 (Final) [dmourati @ flexo ~] $ ssh / usr / bin / ssh [dmourati @ flexo ~] $ 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 | head SFTP (1) Manuel des commandes générales du BSD SFTP (1) NOM sftp - programme de transfert de fichiers sécurisé SYNOPSIS sftp [-1246Cpqrv] [-B taille_ buffer] [-b fichier batch] [-c chiffre] [-D chemin_serveur_sftp] [-F ssh_conf ] [-i identité_file]
dmourati

1
@dmourati: Et le mien n'a pas [iain @ centos ~] $ ssh / usr / bin / ssh [iain @ centos ~] $ 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) Manuel des commandes générales BSD SFTP (1) NOM sftp - Programme de transfert de fichiers sécurisé SYNOPSIS sftp [- 1Cv] [-B buffer_size] [-b fichier_batch] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S programme] [-s sous-système | sftp_server] hôte sftp [[utilisateur @] hôte [: fichier [fichier]]]
utilisateur9517 prend en charge GoFundMonica

8

Vous pouvez créer un autre fichier de configuration pour la connexion et utiliser le -Fcommutateur pour indiquer à ssh de l'utiliser. créer un fichier de configuration, par exemple ~ / .ssh / config.sftp avec le contenu

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

puis appelez sftp comme si

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

La configuration ci-dessus restreint l'utilisation de la clé alternative (lorsque ce fichier de configuration est utilisé) à l'utilisateur RemoteUserName sur remote.host.tld.

Consultez la page de manuel de ssh_confg pour l’utilisation du fichier de configuration alternatif.


Merci beaucoup pour votre aide! Votre solution fournit une alternative simple aux arguments de la ligne de commande. Pour le moment, je préfère passer tous les arguments via la ligne de commande, car j'utilise déjà -oPort = ALT_PORT.
Adi Roiban
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.