[Linux] SSH Key lässt sich nicht kopieren

#6967665
Lesenswert?

Ich habe hier zwei Rechner, auf dem einen möchte ich Passwordless SSH 
einrichten zu dem Server.


Server:
1
draconix@server-home:~/.ssh$ ssh-keygen -t rsa -b 4096 -C "draconix@192.168.178.5"
2
Generating public/private rsa key pair.
3
Enter file in which to save the key (/home/draconix/.ssh/id_rsa):
4
Enter passphrase (empty for no passphrase):
5
Enter same passphrase again:
6
Your identification has been saved in /home/draconix/.ssh/id_rsa
7
Your public key has been saved in /home/draconix/.ssh/id_rsa.pub
8
The key fingerprint is:
9
SHA256:kd2zYsSrTqGWthf+Roiw9hUeF9bVgfb/84cyEM2+Wnc draconix@192.168.178.5
10
The key's randomart image is:
11
+---[RSA 4096]----+
12
|           . .oo.|
13
|         +o..o  .|
14
|        o.+++ .  |
15
|    .   ooo.oo . |
16
|     o oS=+o.   .|
17
|    o .o=+o..   .|
18
|   . .=ooo .....E|
19
|     o.+o ..+..oo|
20
|      ...oo. o  =|
21
+----[SHA256]-----+

auf dem Client kann ich problemlos per SSH auf den Server zugreifen. 
Jedoch kann ich nicht den Key hinzufügen:
1
pi@raspberrypi:~ $ ssh-copy-id draconix@192.168.178.5
2
/usr/bin/ssh-copy-id: ERROR: No identities found

Gebe ich den kompletten Pfad an (egal ob mit oder ohne kompletten 
Pfadangabe, ob mit User oder ohne User vor der IP - immer das gleiche):
1
pi@raspberrypi:~ $ ssh-copy-id -i .ssh/id_rsa.pub draconix@192.168.178.5
2

3
/usr/bin/ssh-copy-id: ERROR: failed to open ID file '.ssh/id_rsa.pub': No such file

Er fragt auch weder nach einem Passwort noch nach einem User ab.

Hat jemand einen Tipp?
#6967676
Lesenswert?

Philipp K. schrieb:
> Der Pfad stimmt nicht..
>
> Rene K. schrieb:
>> ERROR: failed to open ID file '.ssh/id_rsa.pub': No such file

Ja ich weiß, das ist ja eben das Problem. Das File liegt aber an jenem 
Ort.
1
draconix@server-home:~/.ssh$ ls -l
2
total 16
3
-rw------- 1 draconix draconix 3389 Feb  6 13:18 id_rsa
4
-rw-r--r-- 1 draconix draconix  748 Feb  6 13:18 id_rsa.pub
5
-rw------- 1 draconix draconix 3108 Feb  6 13:29 known_hosts
6
-rw-r--r-- 1 draconix draconix 2664 Oct  8 20:01 known_hosts.old
7
draconix@server-home:~/.ssh$

und da spielt es keine Rolle was ich als Pfad angebe:
1
pi@raspberrypi:~ $ ssh-copy-id -i /home/draconix/.ssh/id_rsa.pub draconix@192.168.178.5
2

3
/usr/bin/ssh-copy-id: ERROR: failed to open ID file '/home/draconix/.ssh/id_rsa.pub': No such file
#6967681
Lesenswert?

Jack V. schrieb:
> Du erzeugst das Schlüsselpaar auf einer Maschine namens
> „server-home“,
> willst den öffentlichen Schlüssel aber von einer Maschine namens
> „raspberrypi“ aus kopieren.

Ja.

Also ich erzeuge den Schlüssel für den User "draconix" auf Server-Home - 
auf diesen ich Zugriff haben möchte.

Dann gehe ich an meinen Clienten und kopiere mir den Schlüssel von 
Server-Home.

Ist das nicht richtig so?!
#6967692
Lesenswert?

Jim M. schrieb:
> Dort wird u.a. der Unterschied zwischen absoluten und relativen Pfaden
> erklärt.

Was wäre an der Pfadangabe falsch? Absolut fängt mit / an und relativ 
mit dem Verzeichnis... Deine Argumentation verstehe ich nicht.
1
/home/draconix/.ssh/id_rsa.pub

Jim M. schrieb:
> Außerdem sieht es für mich danach aus dass Dir nicht klar ist auf
> welcher Maschine Du das "ssh-copy-id" Kommando ausführen musst.

Genau das ist / war mein Problem.

Jack V. schrieb:
> Nein. Du erzeugst das Schlüsselpaar auf der Maschine, von der aus du
> dich einloggen möchtest. Dort führst du dann ssh-copy-id user@zielhost
> aus, oder kopierst den öffentlichen Teil des Schlüssels manuell auf die
> Zielmaschine.

Vielen Dank! Ja ich habe da völlig falsch herum gedacht :-D Danke dafür.
Gast #6967976
Lesenswert?

Rene K. schrieb:
> Ist das nicht richtig so?!

Nein.

Du willst dich auf dem Server einloggen. Der Server muss aber wissen, 
wer sich ohne Passwort einloggen will. Also musst Du dem Server vorher 
dein Client-Public-Key geben.

Dazu musst Du auf dem Client, (NICHT auf dem Server) ein Schlüsselpaar 
erzeugen. Anschließend kopierst Du den öffentlichen Teil vom 
Schlüsselpaar auf den Server.

Wenn Du Dich nun auf dem Server ohne Passwort einloggen willst, passiert 
stark vereinfacht ungefähr folgendes:

 - Der Server frägt, "Guten Tag. Wer will rein?"
 - Client antwortet. "draconix will rein, aber ohne Passwort"
 - Server fordert: "Alles klar, signiere diese Zufallszahl: 123"
 - Client antwortet: "Hier ist 123 mit meinem geheimen Schlüssel
   signiert"
 - Server sucht in der Liste der ihm bekannten öffentlichen
   Schlüssel nach dem öffentlichen Schlüssel für "draconix" und
   prüft die Signatur.
 - Bei Erfolg antwortet Server: "Alles klar, Du darfst rein"
#6968019
Lesenswert?

bingo schrieb:
> Einer schrieb:
>> bingo schrieb:
>>> am Client
>>> scp ~/.ssh/id_rsa.pub user@ipserver:/home/user/.ssh/
>>
>> Nein. Völliger Bullshit.
>
> Natürlich geht das, ssh.copy-id macht nix anderes

Der Inhalt der lokalen .ssh/id_rsa.pub muss an den Inhalt der 
.ssh/authorized_keys auf der Gegenseite angehangen (oder im einfachsten 
Fall einfach 1:1 kopiert) werden. Zudem müssen die Zugriffsrechte im 
gesamten Pfad zur authorized_keys Datei stimmen (sofern der check nicht 
deaktiviert wurde).

WO der Schlüssel erzeugt wurde ist erstmal schnuppe, wichtig ist nur, 
dass der lokale private schlüssel mit einem der public keys in der 
.ssh/authorized_keys auf der Gegenseite (Ziel) matcht.

Mit drei Befehlen ist das alles erledigt:

1. Lokalen Key generieren

ssh-keygen -t rsa

2. PUBLIC Teil des neuen Keys zum Zielrechner kopieren

scp .ssh/id_rsa.pub <user>@<zielhost>:

3. Auf dem Zielrechner den Public key an die .ssh/authorized_keys 
anfügen

ssh <user>@<zielhost> "mkdir .ssh ; cat id_rsa.pub >> 
.ssh/authorized_keys ; chmod 755 .ssh ; chmod 644 .ssh/authorized_keys"
#6968328
Lesenswert?

Rene K. schrieb:
> Ja ich weiß, das ist ja eben das Problem. Das File liegt aber an jenem
> Ort.

Eigentlich wurde ja alles geschrieben..

Du erstellt dir für den User Pi einen privaten Schlüssel auf dem rpi.

Der öffentliche Teil davon muss in die Liste der vertrauenswürdigen Keys 
des Hosts.

Also quasi ein Schreibfehler

ssh-copy-id -i ~/.ssh/id_rsa.pub draconix@192.168.178.5

Wenn der User draconix auch auf dem Pi vorhanden ist fehlt vorher ein 
"su draconix".

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren