Schlüssel können nicht exportiert oder aufgelistet werden

431
Qohelet

Ich benutze meinen Desktop, um Dateien von einem Server zu beziehen (mit git und rsync), jetzt möchte ich mein Notebook verwenden und daher versuchen, die erforderlichen RSA-Schlüssel zu exportieren / importieren.

Die automatische Anmeldung vom Notebook zum Desktop ist aktiviert und funktioniert einwandfrei.

Bearbeiten: Festlegen: Es gibt den Desktop (A), der sich ohne Passwort mit dem Server (B) verbinden kann. Mit meinem Notebook (C) kann ich eine Verbindung zum Desktop (A) herstellen, jedoch nicht zum Server (B).

Nun möchte ich die Schlüssel des Desktops (A) in mein Notebook (C) exportieren, damit ich eine Verbindung zum Server (B) herstellen kann.

Auf dem Desktop (A) sehe ich den Schlüssel meines Wunsches:

mario@desktop:~$ ssh-keygen -lf ~/.ssh/id_rsa.pub 4096 xx:xx:xx:yy:yy:yy:zz:zz:zz:xy:yz:xz:yx:zy:zx:xx mario@desktop (RSA) 

Die Dateien sind auch da:

mario@desktop:~$ ls -l ~/.ssh/* -rw-rw-r-- 1 mario mario 1147 Mai 30 12:48 /home/mario/.ssh/authorized_keys -rw------- 1 mario mario 3243 Apr 11 16:30 /home/mario/.ssh/id_rsa -rw-r--r-- 1 mario mario 741 Apr 11 16:30 /home/mario/.ssh/id_rsa.pub -rw-r--r-- 1 mario mario 444 Apr 11 16:32 /home/mario/.ssh/known_hosts -rw------- 1 mario mario 1766 Mai 15 12:35 /home/mario/.ssh/notebookID -rw-r--r-- 1 mario mario 397 Mai 15 12:35 /home/mario/.ssh/notebookID.pub 

Seltsamerweise haben diese Befehle überhaupt keine Ausgabe:

mario@desktop:~$ gpg --list-keys mario@desktop:~$ gpg --list-secret-keys  

Ich frage mich, dass zumindest der öffentliche Schlüssel aus meinem Notizbuch aufgeführt sein sollte.

Versuche, Schlüssel aufzulisten oder zu exportieren, schlagen fehl:

mario@desktop:~$ ssh-add -l Could not open a connection to your authentication agent. mario@desktop:~$ gpg --export --output public-keys.asc gpg: WARNUNG: Nothing exported mario@desktop:~$ gpg --export-secret-keys --output secret-keys.asc gpg: WARNUNG: Nothing exported mario@desktop:~$ gpg --export-secret-key secring.gpg gpg: WARNUNG: Nothing exported 

Der Agent arbeitet:

mario@desktop:~$ ssh-agent  SSH_AUTH_SOCK=/tmp/ssh-xxfgqbw7SnZe/agent.5801; export SSH_AUTH_SOCK; SSH_AGENT_PID=5802; export SSH_AGENT_PID; echo Agent pid 5802; 

Der erste Fehler sieht für die Suche im Internet vielversprechend aus. Stackoverflow liefert einige Antworten:

Die vorgeschlagene Lösung mit eval ist nicht wirklich eine Verbesserung der Dinge:

mario@desktop:~$ eval $(ssh-agent) Agent pid 5849 mario@desktop:~$ ssh-add -l The agent has no identities. 

Was mache ich falsch..? Ich habe keine Ideen mehr. Vielen Dank

0
Was meinen Sie mit "Exportieren meiner öffentlichen Schlüssel"? In ssh paradigm sind Dateien in * .pub Ihre öffentlichen Schlüssel. Sie werden hauptsächlich in authorisierten Schlüsseln verwendet, um eine eingehende Verbindung mit ssh / scp / sftp zuzulassen. Diese Schlüssel können kein Dokument signieren oder eine https-Verbindung zulassen. Archemar vor 6 Jahren 0
@Archemar - wie soll ich diese dann auf mein Notebook verschieben, um eine Verbindung zum Server herzustellen? Qohelet vor 6 Jahren 0
einfach "cat ~ / .ssh / id_rsa.pub" (notebookID.pub?) vom Start-Host und -Benutzer bis zum "Authorized_keys" im Ziel-Host und -Benutzer. (Dies ist eine einzelne Zeile, die kopiert / übertragen werden soll) Archemar vor 6 Jahren 0
@Archemar `notebookID.pub` ist der Schlüssel, den ich ausgetauscht habe, um eine Verbindung zwischen meinem Notebook und dem Desktop ohne Anmeldung herzustellen. Qohelet vor 6 Jahren 0
Nach dem "eval $ (ssh-agent)" müssen Sie Identitäten hinzufügen, _e.g._ `ssh-add notebookID`. user4556274 vor 6 Jahren 0
@ user4556274 Ok, ich habe keine Fehlermeldung erhalten, aber ich kann immer noch keine Schlüssel auf mein Notebook exportieren. Warum sollte ich die notebookID hinzufügen? Mein Notebook hat diesen Schlüssel bereits. Ich gehe davon aus, dass es "id_rsa" sein sollte. Versucht beide, keine Änderungen, aber jetzt haben `ssh-add -l` und` ssh-keygen -lf ~ / .ssh / id_rsa.pub` die gleiche Ausgabe. Qohelet vor 6 Jahren 0
Nirgendwo in Ihrer Frage geben Sie genau an, was Sie versuchen, außer "Ich möchte mein Notizbuch verwenden". Um eine Verbindung von Maschine ** A ** zu Maschine ** B ** mit einem über ssh-agent verwalteten ssh-Schlüssel herzustellen, benötigen Sie (1) den ssh-agent, der auf ** A ** (2) läuft, und einen privaten Schlüssel, der in den Computer geladen wird ssh-agent auf ** A ** (3) eine authorized_keys-Datei auf ** B **, die den öffentlichen Schlüssel enthält, der dem privaten Schlüssel in ** A ** entspricht. (4) gpg-Schlüssel sind eine völlig andere Angelegenheit. user4556274 vor 6 Jahren 0
@ user4556274 - Ich habe es bearbeitet, ist es jetzt klarer? Qohelet vor 6 Jahren 0
Hängen Sie den Notebook-Schlüssel an die `Authorized_keys'-Datei des Servers an:` notebook $ ssh-copy-id qohelet @ server`. Die Desktop-Keys müssen nicht drin sein. Sie haben den Desktop-Schlüssel bereits auf dem Server. Jetzt möchten Sie auch den Laptop-Schlüssel auf dem Server. (?) user4556274 vor 6 Jahren 0
@ user4556274 - das ist das Problem. Ich kann nicht einmal mit dem Notebook (C) eine Verbindung zum Server (B) herstellen. Ich weiß nicht viel über seine Konfiguration und ziehe Dateien normalerweise nur mit git oder rsync zurück. Kann ich die Schlüssel nicht einfach vom Desktop (A) in mein Notebook exportieren? Qohelet vor 6 Jahren 0
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/59738/discussion-between-user4556274-and-qohelet). user4556274 vor 6 Jahren 0

1 Antwort auf die Frage

2
grawity

Zunächst mischen Sie Befehle für zwei völlig unabhängige Programme. Obwohl beide auf denselben kryptographischen Algorithmen basieren, verfügen OpenSSH und GnuPG (PGP) über eigene Schlüsseltypen und eigenen Speicher.

Eine Ausnahme wäre, wenn Sie die SSH-Agentenemulation von gpg-agent verwenden. Aber Sie verwenden das nicht - Sie verwenden den OpenSSH-Agenten.

Daher gpg sollte nicht für Sie SSH - Schlüssel auflisten. Kopieren Sie einfach .ssh/id_rsaund .ssh/notebookID(und die zugehörigen .pub-Dateien) von Hand mit scp, sftp & c.


Zweitens hat ssh-agent auch nichts mit dem Export von Schlüsseln zu tun. Es kann Ihre Schlüssel für den Zweck der Verwendung in SSH im Speicher halten, aber Sie können sie sowieso nicht zurück exportieren . (Schlüssel werden auch nicht automatisch geladen, Sie müssen sie jedes Mal ssh-hinzufügen.)

Also in diesem Fall müssen Sie nicht brauchen ssh-add -l etwas zur Liste oder sogar arbeiten. Kopieren Sie die Dateien einfach von Hand.

(Wiederum gilt das obige nicht unbedingt für die "SSH-Agent-Emulation" von gpg-agent.)

Ich habe sie schon kopiert. Das war das erste, was ich ausprobierte, kein Erfolg Qohelet vor 6 Jahren 0
Kein Erfolg mit was - ssh? rsync? Bisher haben Sie nur gesagt, dass Sie _sollten, sie in Ihr Notizbuch zu exportieren, aber nichts darauf demonstriert haben - der Beitrag zeigt nur nicht verwandte Befehle auf dem _desktop._ grawity vor 6 Jahren 0
Ich benutzte `tar -zcvf sshs.tgz .ssh /`, um alle Schlüssel auf dem Desktop (A) zu packen, benutzte `scp 'von meinem Notebook (C), um sie zu erhalten, und machte einfach einen` gunzip sshs.tgz` in meinem Home-Ordner. Dann habe ich versucht, git und rsync vom Notebook (C) zu verwenden, um die Dateien vom Server (B) zu erhalten. Qohelet vor 6 Jahren 0
Welchen der beiden Schlüssel erwarteten Sie damit? (Standardmäßig werden nur id_rsa oder Agentenschlüssel verwendet, wenn welche vorhanden sind.) Haben Sie "ssh" mit dem Server versucht? (Das Hinzufügen von -v würde zeigen, was es versucht hat.) grawity vor 6 Jahren 0
@ user4556274 hat das schon vorgeschlagen. Auf dem Desktop (A) funktionieren die Dinge gut. Auf dem Notebook schlägt es fehl ... Siehe: https://chat.stackexchange.com/rooms/59738/discussion-between-user4556274-and-qohelet Qohelet vor 6 Jahren 0