SSH Client: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
=Einloggen=
 
=Einloggen=
'''xinux@orville:~$ ssh kit@server'''  
+
Beim '''ersten''' Verbindungsaufbau zu einem Server kennt SSH den Zielrechner noch nicht
 +
und fragt nach einer Bestätigung. Das ist ein Sicherheitsmechanismus gegen
 +
'''Man-in-the-Middle-Angriffe'''.
  
 +
'''xinux@orville:~$ ssh kit@server'''
 
  The authenticity of host 'server (192.168.16.216)' can't be established.
 
  The authenticity of host 'server (192.168.16.216)' can't be established.
 
  ED25519 key fingerprint is SHA256:GOyaDogwsT3hrFwp3lEelZqiTQ6l3ORN+aSnzwo5Wdg.
 
  ED25519 key fingerprint is SHA256:GOyaDogwsT3hrFwp3lEelZqiTQ6l3ORN+aSnzwo5Wdg.
Zeile 8: Zeile 11:
 
  Warning: Permanently added 'server' (ED25519) to the list of known hosts.
 
  Warning: Permanently added 'server' (ED25519) to the list of known hosts.
 
  kit@server's password: '''*****'''
 
  kit@server's password: '''*****'''
  Linux server.it216.int 6.12.73+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.73-1 (2026-02-17) x86_64
+
  ...
 
The programs included with the Debian GNU/Linux system are free software;
 
the exact distribution terms for each program are described in the
 
individual files in /usr/share/doc/*/copyright.
 
 
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 
permitted by applicable law.
 
Last login: Thu Oct 23 11:26:23 2025 from 10.81.31.112
 
 
  kit@server.it216.int:~$
 
  kit@server.it216.int:~$
 +
 +
'''Was passiert hier?'''
 +
* SSH zeigt den '''Fingerprint''' des Server-Schlüssels – im Idealfall vergleicht man diesen
 +
  mit dem vom Administrator bekanntgegebenen Wert.
 +
* Nach der Bestätigung wird der Schlüssel in '''~/.ssh/known_hosts''' gespeichert.
 +
* Ab dem zweiten Login erscheint diese Meldung nicht mehr – SSH erkennt den Server wieder.
 +
 +
'''Hinweis:''' Erscheint die Warnung bei einem bekannten Server plötzlich erneut
 +
(z.B. nach einer Neuinstallation), unbedingt beim Administrator nachfragen bevor
 +
man '''yes''' eingibt.
  
 
=Ausloggen=
 
=Ausloggen=
 +
Mit '''exit''' wird die SSH-Verbindung sauber beendet. Alternativ funktioniert auch
 +
die Tastenkombination '''Strg+D'''.
 +
 
'''kit@server.it216.int:~$ exit'''
 
'''kit@server.it216.int:~$ exit'''
 
  logout
 
  logout
Zeile 25: Zeile 33:
  
 
=User Keys generieren=
 
=User Keys generieren=
'''xinux@orville:~$ ssh-keygen'''  
+
Statt eines Passworts kann man sich mit einem '''Schlüsselpaar''' authentifizieren.
 +
Das besteht aus zwei Dateien:
 +
* '''id_ed25519''' – der private Schlüssel. Dieser verlässt den eigenen Rechner '''niemals'''.
 +
* '''id_ed25519.pub''' – der öffentliche Schlüssel. Dieser wird auf den Server übertragen.
 +
 
 +
ED25519 ist ein modernes, sicheres Verfahren und die empfohlene Wahl.
 +
Die '''Passphrase''' schützt den privaten Schlüssel zusätzlich – sie ist zwar optional,
 +
aber dringend empfohlen.
 +
 
 +
'''xinux@orville:~$ ssh-keygen'''
 
   Generating public/private ed25519 key pair.
 
   Generating public/private ed25519 key pair.
 
   Enter file in which to save the key (/home/xinux/.ssh/id_ed25519):  
 
   Enter file in which to save the key (/home/xinux/.ssh/id_ed25519):  
Zeile 46: Zeile 63:
 
   |ooo ...          |
 
   |ooo ...          |
 
   +----[SHA256]-----+
 
   +----[SHA256]-----+
=Öffentlicher Schlüsselübertragen=
+
 
'''ssh-copy-id kit@server'''
+
'''Was passiert hier?'''
 +
* Die Eingabetaste bei der Datei-Frage übernimmt den Standardpfad – das ist in der Regel richtig.
 +
* Das '''Randomart-Bild''' ist eine visuelle Darstellung des Fingerprints – rein zur
 +
  Wiedererkennung, kein Sicherheitsmerkmal.
 +
 
 +
=Öffentlichen Schlüssel übertragen=
 +
Mit '''ssh-copy-id''' wird der öffentliche Schlüssel automatisch in die richtige Datei
 +
auf dem Server ('''~/.ssh/authorized_keys''') eingetragen. Dafür ist einmalig das
 +
Passwort des Ziel-Benutzers nötig.
 +
 
 +
'''xinux@orville:~$ ssh-copy-id kit@server'''
 
  /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/xinux/.ssh/id_ed25519.pub"
 
  /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/xinux/.ssh/id_ed25519.pub"
'''kit@server's password:'''  '''******'''
+
kit@server's password: ******
 
   
 
   
  Number of key(s) added: 1  
+
  Number of key(s) added: 1
 
   
 
   
 
  Now try logging into the machine, with: "ssh 'kit@server'"
 
  Now try logging into the machine, with: "ssh 'kit@server'"
 
  and check to make sure that only the key(s) you wanted were added.
 
  and check to make sure that only the key(s) you wanted were added.
+
 
'''xinux@orville:~$ ssh kit@server'''
+
Ab jetzt wird beim Login nicht mehr das Passwort des Benutzers abgefragt,
  Enter passphrase for key '/home/xinux/.ssh/id_ed25519': '''******'''
+
sondern die '''Passphrase des privaten Schlüssels''':
 +
 
 +
'''xinux@orville:~$ ssh kit@server'''
 +
  Enter passphrase for key '/home/xinux/.ssh/id_ed25519': ******
 +
 
 +
'''Hinweis:''' Das ist ein wichtiger Unterschied – die Passphrase verlässt den eigenen
 +
Rechner nicht. Sie entschlüsselt nur lokal den privaten Schlüssel.
 
=SSH-Agent (Passphrase nur einmal eingeben)=
 
=SSH-Agent (Passphrase nur einmal eingeben)=
 
Wer einen SSH-Schlüssel mit Passphrase verwendet, muss diese normalerweise bei jeder
 
Wer einen SSH-Schlüssel mit Passphrase verwendet, muss diese normalerweise bei jeder

Version vom 11. April 2026, 13:53 Uhr

Einloggen

Beim ersten Verbindungsaufbau zu einem Server kennt SSH den Zielrechner noch nicht und fragt nach einer Bestätigung. Das ist ein Sicherheitsmechanismus gegen Man-in-the-Middle-Angriffe.

xinux@orville:~$ ssh kit@server

The authenticity of host 'server (192.168.16.216)' can't be established.
ED25519 key fingerprint is SHA256:GOyaDogwsT3hrFwp3lEelZqiTQ6l3ORN+aSnzwo5Wdg.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'server' (ED25519) to the list of known hosts.
kit@server's password: *****
...
kit@server.it216.int:~$

Was passiert hier?

  • SSH zeigt den Fingerprint des Server-Schlüssels – im Idealfall vergleicht man diesen
 mit dem vom Administrator bekanntgegebenen Wert.
  • Nach der Bestätigung wird der Schlüssel in ~/.ssh/known_hosts gespeichert.
  • Ab dem zweiten Login erscheint diese Meldung nicht mehr – SSH erkennt den Server wieder.

Hinweis: Erscheint die Warnung bei einem bekannten Server plötzlich erneut (z.B. nach einer Neuinstallation), unbedingt beim Administrator nachfragen bevor man yes eingibt.

Ausloggen

Mit exit wird die SSH-Verbindung sauber beendet. Alternativ funktioniert auch die Tastenkombination Strg+D.

kit@server.it216.int:~$ exit

logout
Connection to server closed.

User Keys generieren

Statt eines Passworts kann man sich mit einem Schlüsselpaar authentifizieren. Das besteht aus zwei Dateien:

  • id_ed25519 – der private Schlüssel. Dieser verlässt den eigenen Rechner niemals.
  • id_ed25519.pub – der öffentliche Schlüssel. Dieser wird auf den Server übertragen.

ED25519 ist ein modernes, sicheres Verfahren und die empfohlene Wahl. Die Passphrase schützt den privaten Schlüssel zusätzlich – sie ist zwar optional, aber dringend empfohlen.

xinux@orville:~$ ssh-keygen

 Generating public/private ed25519 key pair.
 Enter file in which to save the key (/home/xinux/.ssh/id_ed25519): 
 Enter passphrase for "/home/xinux/.ssh/id_ed25519" (empty for no passphrase): 
 Enter same passphrase again: 
 Your identification has been saved in /home/xinux/.ssh/id_ed25519
 Your public key has been saved in /home/xinux/.ssh/id_ed25519.pub
 The key fingerprint is:
 SHA256:GgiLput73H6NERA15OBg/pTRYYMnHzEz4dgxRgxQcb0 xinux@orville
 The key's randomart image is:
 +--[ED25519 256]--+
 |   +oB@^=        |
 |  o o+%=O.       |
 |  .. ==+. .      |
 | . oo. o E       |
 |... ... S        |
 |o      +         |
 |. . . . +        |
 | . o . o .       |
 |ooo ...          |
 +----[SHA256]-----+

Was passiert hier?

  • Die Eingabetaste bei der Datei-Frage übernimmt den Standardpfad – das ist in der Regel richtig.
  • Das Randomart-Bild ist eine visuelle Darstellung des Fingerprints – rein zur
 Wiedererkennung, kein Sicherheitsmerkmal.

Öffentlichen Schlüssel übertragen

Mit ssh-copy-id wird der öffentliche Schlüssel automatisch in die richtige Datei auf dem Server (~/.ssh/authorized_keys) eingetragen. Dafür ist einmalig das Passwort des Ziel-Benutzers nötig.

xinux@orville:~$ ssh-copy-id kit@server

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/xinux/.ssh/id_ed25519.pub"
kit@server's password: ******

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'kit@server'"
and check to make sure that only the key(s) you wanted were added.

Ab jetzt wird beim Login nicht mehr das Passwort des Benutzers abgefragt, sondern die Passphrase des privaten Schlüssels:

xinux@orville:~$ ssh kit@server

Enter passphrase for key '/home/xinux/.ssh/id_ed25519': ******

Hinweis: Das ist ein wichtiger Unterschied – die Passphrase verlässt den eigenen Rechner nicht. Sie entschlüsselt nur lokal den privaten Schlüssel.

SSH-Agent (Passphrase nur einmal eingeben)

Wer einen SSH-Schlüssel mit Passphrase verwendet, muss diese normalerweise bei jeder Verbindung neu eingeben. Der ssh-agent merkt sich die entschlüsselten Schlüssel für die Dauer der Sitzung.

Mit grafischer Oberfläche (GNOME, KDE, etc.)

Desktop-Umgebungen starten automatisch einen ssh-agent. Es reicht ein einmaliges: xinux@orville:~$ ssh-add ~/.ssh/id_ed25519

Enter passphrase for /home/xinux/.ssh/id_ed25519: ******
Identity added: /home/xinux/.ssh/id_ed25519 (xinux@orville)

Ab jetzt funktioniert ssh kit@server ohne Passphrase-Eingabe – bis zum nächsten Login.

Ohne grafische Oberfläche (Server, reines Terminal)

Hier startet kein Agent automatisch. Folgenden Block an das Ende der /etc/bash.bashrc anhängen:

#Existiert die Datei und ist ein »Socket«?
if [ ! -S ~/.ssh/ssh_auth_sock ]
then
  #eval wertet die Rückgabe nochmal aus
  eval $(ssh-agent) > /dev/null 2>&1
  #Ist das Verzeichnis vorhanden? Wenn nicht, wird es angelegt
  test -d ~/.ssh || mkdir ~/.ssh
  #Wir verlinken diesen Socket auf einen festen Pfad
  #Dieser lebt bis zum Neustart
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock

Danach den Schlüssel einmalig zum Agent hinzufügen: xinux@orville:~$ ssh-add ~/.ssh/id_ed25519

Enter passphrase for /home/xinux/.ssh/id_ed25519: ******
Identity added: /home/xinux/.ssh/id_ed25519 (xinux@orville)

Hinweis: Bei jedem Neustart muss ssh-add einmal erneut ausgeführt werden. Die Passphrase selbst wird dabei nicht gespeichert – das ist gewollt.