Difference between revisions of "Ssh"

From mxlinuxusers.de
Jump to navigation Jump to search
(ssh Installationsdetails ergänzt)
Line 8: Line 8:
 
  apt-get install openssh-server
 
  apt-get install openssh-server
 
  apt-get install openssh-client
 
  apt-get install openssh-client
openssh-server wird auf dem entfernten Rechner (Server) installiert, openssh-client auf dem eigenen Rechner.
+
openssh-server wird auf dem entfernten Rechner (Server) installiert, openssh-client auf dem eigenen Rechner. Es gibt auch das Meta-Paket ssh, mit dem sowohl der openssh-server als auch der openssh-client in einem Rutsch installiert werden können:
 +
apt-get install ssh
 +
Allerdings ist der openssh-client schon per Default installiert, so daß es bei Bedarf reichen würde, nur openssh-server zu installieren.
  
 
Da wie unter Linux üblich, diese Rollen nicht festgelegt sein müssen, können beide Dienste auch auf beiden Rechnern laufen, so daß ein wechselseitigier Zugiff von Rechner A auf Rechner B und umgekehrt möglich wäre.
 
Da wie unter Linux üblich, diese Rollen nicht festgelegt sein müssen, können beide Dienste auch auf beiden Rechnern laufen, so daß ein wechselseitigier Zugiff von Rechner A auf Rechner B und umgekehrt möglich wäre.
  
 
'''ACHTUNG:''' zumindest in den Repos von MX-18 existiert noch das Paket openssh-client-ssh1, das das veraltetete und unsichere Protokoll SSH1 benutzt. Von dessen Installation wird abgeraten.
 
'''ACHTUNG:''' zumindest in den Repos von MX-18 existiert noch das Paket openssh-client-ssh1, das das veraltetete und unsichere Protokoll SSH1 benutzt. Von dessen Installation wird abgeraten.
 +
 +
Nach der Installation stehen folgende Kommandos zur Verfügung:
 +
* ssh          # das eigentliche Kommando, um sich mit dem entfenten Rechne zu verbinden
 +
* sshd        # wie ssh, läuft jedoch al Dämon im Hintergund
 +
* scp          # zum Kopieren von Dateien zwischen den zwei Rechnern
 +
* ssh-keygen  # dient zur Verwaltung der benötigten Schlüssel
 +
* ssh-copy-id  # zum sicheren Austausch der für die Authentifizierung benötigten Schlüssel
  
 
== Verwendung ==
 
== Verwendung ==

Revision as of 15:38, 24 June 2020

ssh ist die Abkürzung für die Anwendung "Secure Shell". Im Prinzip besteht sie aus mindestens zwei Teilen, dem SSH-Server und dem SSH-Client. Da ssh modular aufgebaut ist, gibt es noch weitere Anwendungen für verschiedene Zwecke, z.B. einen sftp-server für den SFTP-Zugriff von entfernten Rechnern aus.

Mit ssh (SSH-Client) kann man sich an einem entfernten Rechner anmelden und dort Befehle ausführen. Vorrausetzung ist, daß auf dem entfernten Rechner ein SSH-Server läuft. Mit ssh wird sichere verschlüsselte Kommunikation zwischen den beiden Hosts ermöglicht. X11-Verbindungen, beliebige TCP-Ports und UNIX-Domain-Sockets können ebenfalls über den sicheren Kanal weitergeleitet werden.

Installation

Das ursprüngliche ssh-Protokoll wurde wurde 1995 von dem Finnen Tatu Ylönen als Open-Source-Projekt entwickelt. Da T. Ylönen aber bald begann, dies in einer eigenen Firma kommerziell zu vermarkten, wurde aus den letzten freien Sourcen ein neues Projekt entwickelt (geforkt), das sich OpenSSH nennt.[1]

Da wie gesagt, mindestens ein SSH-Server und ein SSH-Client benötigt wird, sollten als Minimum diese zwei Pakete installiert werden:

apt-get install openssh-server
apt-get install openssh-client

openssh-server wird auf dem entfernten Rechner (Server) installiert, openssh-client auf dem eigenen Rechner. Es gibt auch das Meta-Paket ssh, mit dem sowohl der openssh-server als auch der openssh-client in einem Rutsch installiert werden können:

apt-get install ssh

Allerdings ist der openssh-client schon per Default installiert, so daß es bei Bedarf reichen würde, nur openssh-server zu installieren.

Da wie unter Linux üblich, diese Rollen nicht festgelegt sein müssen, können beide Dienste auch auf beiden Rechnern laufen, so daß ein wechselseitigier Zugiff von Rechner A auf Rechner B und umgekehrt möglich wäre.

ACHTUNG: zumindest in den Repos von MX-18 existiert noch das Paket openssh-client-ssh1, das das veraltetete und unsichere Protokoll SSH1 benutzt. Von dessen Installation wird abgeraten.

Nach der Installation stehen folgende Kommandos zur Verfügung:

  • ssh # das eigentliche Kommando, um sich mit dem entfenten Rechne zu verbinden
  • sshd # wie ssh, läuft jedoch al Dämon im Hintergund
  • scp # zum Kopieren von Dateien zwischen den zwei Rechnern
  • ssh-keygen # dient zur Verwaltung der benötigten Schlüssel
  • ssh-copy-id # zum sicheren Austausch der für die Authentifizierung benötigten Schlüssel

Verwendung

Die Anmeldung (einloggen) auf dem entfernten Rechner erfolgt so:

ssh USER@RECHNER
USER = Username, als der man sich auf dem entfernten Rechner einloggen will. Dieser User muss dort natürlich auch existieren
RECHNER = Name des entfernten Rechners, es kann auch die IP-Adresse sein.

Ist der Username auf beiden Rechnern gleich, kann man ihn auch weglassen.

ssh RECHNER

Bei der ersten Anmeldung bekommt man eine Warnung, daß der Schlüssel des entfernten Rechners nicht bekannt ist und die Anfrage, ob man sich tatsächlich damit verbinden möchte.

The authenticity of host 'server (192.168.1.21)' can't be established.
ECDSA key fingerprint is b4:0b:eb:b6:15:16:d6:14:96:29:08:48:3e:dc:2b:c1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server' (ECDSA) to the list of known hosts.

Normalerweise sollte man sich vergewissern, ob dies tatsächlich der Schlüssel des entfernten Rechners ist (z.B. durch vorherige Anfrage beim Admin).

Wie auch immer, wird diese Anfrage mit yes beantwortet, so erfolgt eine neuerliche Warnung, daß dieser Schlüssel in die Datei ~/.ssh/known_hosts eingetragen wird, in der sich die Keys der bekannten Rechner (Hosts) befinden.

Warning: Permanently added 'server' (ECDSA) to the list of known hosts.

Damit wird beim neuerlichen Anmelden eine neue Warnung verhindert, da dieser entfernte Rechner nun als bekannt und vertrauenswürdig eingestuft ist.

Nach dem Anmeldekommando kann auch ein Befehl oder ein Skript angefügt werden:

ssh USER@RECHNER ls -l

Der Befehl wird ausgeführt, das Ergebnis angezeigt und die Verbindung sofort geschlossen.

Quellen