Frage Wie verwende ich den Befehl openssh sftp mit einem RSA / DSA-Schlüssel, der über die Befehlszeile angegeben wurde?


Der Befehl Openssh ssh und scp enthielt einen Befehl -i Befehlszeilenoption zum Angeben des Pfads zum RSA / DSA-Schlüssel, der für die Authentifizierung verwendet werden soll.

Mit Blick auf die sftp man-Seiten konnte ich keinen Weg finden, den RSA / DSA-Schlüssel anzugeben.

Ich suche nach einer Möglichkeit, eine SFTP-Sitzung zu initiieren, die einen angegebenen RSA / DSA-Schlüssel und nicht die Schlüssel ~ / .ssh / id_ {dsa, rsa} verwendet.

Ich habe versucht, OpenSSH sftp Client auf Linux ... aber es sollte die gleichen Optionen auf anderen Plattformen haben.


25
2018-05-26 08:02


Ursprung


Bitte geben Sie an, welchen sftp-Client Sie auf welcher Plattform verwenden. - dmourati


Antworten:


Eine mögliche Option ist zu verwenden sftp -oIdentityFile=/path/to/private/keyfile. Brauchen Sie mehr Informationen um zu sagen, ob das für Sie funktioniert. Scheint unter Mac / Linux zu arbeiten.


30
2018-05-26 08:55





Sie können einfach die verwenden -i Argument für Ihren sftp oder ssh Befehl.

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

Wenn die Option -i nicht verfügbar ist, können Sie die Option -o mit folgender Syntax verwenden:

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

9
2018-05-26 08:45



sftp hat keine Option -i, was vermutlich der Grund ist, warum das OP die Frage stellt. - Iain
funktioniert unter meinen Linux-Hosts, aber nicht auf meinem Mac-Laptop, wo die Option -i nicht zu existieren scheint. - dmourati
Meine Ubuntu und CentOS Hosts haben keinen -i Schalter für sftp - Iain
Mein CentOS-Client funktioniert wie folgt: [dmourati @ flexo ~] $ cat / etc / redhat-release CentOS Version 5.6 (Finale) [dmourati @ flexo ~] $ welche ssh / usr / bin / ssh [dmourati @ flexo ~] $ welche sftp / usr / bin / sftp [dmourati @ flexo ~] $ rpm -qf / usr / bin / sftp openssh-klienten-4.3p2-72.el5 [dmourati @ flexo ~] $ mann sftp [dmourati @ flexo ~] $ mann sftp | head SFTP (1) BSD Allgemeine Befehle Manual SFTP (1) NAME sftp - Sicheres Dateiübertragungsprogramm SYNOPSIS sftp [-1246Cpqrv] [-B Puffer_Größe] [-b Batchdatei] [-c Verschlüsselung] [-D Sftp_Server_Pfad] [-F ssh_config ] [-i Identitätsdatei] - dmourati
@dmourati: Und meins macht nicht [iain @ centos ~] $ welche ssh / usr / bin / ssh [iain @ centos ~] $ welche 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) BSD Allgemeine Befehle Manual SFTP (1) NAME sftp - sicheres Dateitransferprogramm SYNOPSIS sftp [- 1Cv] [-B puffergröße] [-b Batchdatei] [-Fsh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S Programm] [-s Subsystem | sftp_server] Host sftp [[Benutzer @] Host [: Datei [Datei]]] - Iain


Sie können eine alternative Konfigurationsdatei für die Verbindung erstellen und die -F Wechseln Sie zu ssh, um es zu verwenden. Erstelle eine Konfigurationsdatei, z.B. ~ / .ssh / config.sftp mit dem Inhalt

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

dann rufe sftp so an

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

Die obige Konfiguration beschränkt die Verwendung des alternativen Schlüssels (wenn diese Konfigurationsdatei verwendet wird) auf den Benutzer RemoteUserName auf remote.host.tld.

Schaut euch die Manpage für an ssh_confg für die Verwendung der alternativen Konfigurationsdatei


6



Vielen Dank für Ihre Hilfe! Ihre Lösung bietet eine saubere Alternative zu den Befehlszeilenargumenten. Momentan bevorzuge ich es, alle Argumente über die Befehlszeile zu übergeben, da ich bereits -oPort = ALT_PORT verwende. - Adi Roiban