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.

Adi Roiban
la source
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.

dmourati
la source
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 ...
slubman
la source
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.

Iain
la source
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