Android

SSH-Befehl

SSH - Erklärung, Login und Anwendung

SSH - Erklärung, Login und Anwendung

Inhaltsverzeichnis:

Anonim

Secure Shell (SSH) ist ein kryptografisches Netzwerkprotokoll, das für eine verschlüsselte Verbindung zwischen einem Client und einem Server verwendet wird. Der ssh-Client stellt eine sichere Verbindung zum SSH-Server auf einem Remotecomputer her. Über die verschlüsselte Verbindung können Befehle auf dem Server, X11-Tunneling, Portweiterleitung usw. ausgeführt werden.

Es gibt eine Reihe von kostenlosen und kommerziellen SSH-Clients, wobei OpenSSH der am häufigsten verwendete Client ist. Es ist auf allen wichtigen Plattformen verfügbar, einschließlich Linux, OpenBSD, Windows, macOS und anderen.

Wir werden erklären, wie Sie sich mit dem OpenSSH-Befehlszeilen-Client ( ssh ) bei einem Remote-Computer anmelden und Befehle ausführen oder andere Vorgänge ausführen.

OpenSSH-Client installieren

Das OpenSSH-Client-Programm heißt ssh und kann vom Terminal aus aufgerufen werden. Das OpenSSH-Clientpaket enthält auch andere SSH-Dienstprogramme wie scp und sftp , die neben dem Befehl ssh installiert werden.

OpenSSH-Client unter Linux installieren

Der OpenSSH-Client ist auf den meisten Linux-Distributionen standardmäßig vorinstalliert. Wenn auf Ihrem System der ssh-Client nicht installiert ist, können Sie ihn mit dem Paketmanager Ihrer Distribution installieren.

OpenSSH unter Ubuntu und Debian installieren

sudo apt update sudo apt install openssh-client

OpenSSH unter CentOS und Fedora installieren

sudo dnf install openssh-clients

OpenSSH-Client unter Windows 10 installieren

Die meisten Windows-Benutzer verwenden Putty, um über SSH eine Verbindung zu einem Remotecomputer herzustellen. Die neuesten Versionen von Windows 10 enthalten jedoch einen OpenSSH-Client und -Server. Beide Pakete können über die GUI oder PowerShell installiert werden.

Geben Sie den folgenden Befehl ein, um den genauen Namen des OpenSSH-Pakets zu ermitteln:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Der Befehl sollte ungefähr so ​​aussehen:

Name: OpenSSH.Client~~~~0.0.1.0 State: NotPresent Name: OpenSSH.Server~~~~0.0.1.0 State: NotPresent

Sobald Sie den Paketnamen kennen, installieren Sie ihn, indem Sie Folgendes ausführen:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Bei Erfolg sieht die Ausgabe so aus:

Path: Online: True RestartNeeded: False

OpenSSH Client unter macOS installieren

Im Lieferumfang von macOS ist standardmäßig der OpenSSH-Client installiert.

So verwenden Sie den Befehl ssh

Die folgenden Voraussetzungen müssen erfüllt sein, um sich über SSH bei einem Remotecomputer anmelden zu können:

  • Auf dem Remotecomputer muss ein SSH-Server ausgeführt werden. Der SSH-Port muss in der Firewall des Remotecomputers geöffnet sein. Sie müssen den Benutzernamen und das Kennwort des Remotekontos kennen. Das Konto muss über die erforderlichen Berechtigungen für die Remote-Anmeldung verfügen.

Die grundlegende Syntax des Befehls ssh lautet wie folgt:

ssh:HOST

Um den Befehl ssh öffnen Sie Ihr Terminal oder Ihre PowerShell und geben Sie ssh gefolgt vom Namen des Remote-Hosts ein:

ssh ssh.linuxize.com

Wenn Sie zum ersten Mal über SSH eine Verbindung zu einem Remotecomputer herstellen, wird die folgende Meldung angezeigt.

The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established. ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY. Are you sure you want to continue connecting (yes/no)?

Jeder Host verfügt über einen eindeutigen Fingerabdruck, der in der Datei ~/.ssh/known_hosts gespeichert ist.

Geben Sie yes , um den Remote-Fingerabdruck zu speichern, und Sie werden aufgefordert, Ihr Kennwort einzugeben.

Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts. [email protected]'s password:

Sobald Sie das Kennwort eingegeben haben, werden Sie auf dem Remote-Computer angemeldet.

Wenn der Benutzername nicht angegeben wird, verwendet der Befehl ssh den aktuellen Systemanmeldenamen.

Geben Sie den Benutzernamen und den Host im folgenden Format an, um sich als ein anderer Benutzer anzumelden:

ssh username@hostname

Der Benutzername kann auch mit der Option -l angegeben werden:

ssh -l username hostname

Wenn kein Port angegeben ist, versucht der SSH-Client standardmäßig, über Port 22 eine Verbindung zum Remoteserver herzustellen. Auf einigen Servern ändern Administratoren den Standard-SSH-Port, um dem Server eine zusätzliche Sicherheitsebene hinzuzufügen, indem das Risiko von verringert wird automatisierte Angriffe.

Um eine Verbindung zu einem nicht standardmäßigen Port -p , geben Sie den Port mit der Option -p an:

ssh -p 5522 username@hostname

ssh -v username@hostname

Verwenden Sie -vv oder -vvv um die Ausführlichkeit zu -vvv .

Der Befehl ssh akzeptiert eine Reihe von Optionen.

Eine vollständige Liste aller Optionen finden Sie in der ssh Manpage, indem Sie man ssh in Ihr Terminal eingeben.

SSH-Konfigurationsdatei

Der OpenSSH-Client liest die in der benutzerspezifischen Konfigurationsdatei ( ~/.ssh/config ) festgelegten Optionen. In dieser Datei können Sie verschiedene SSH-Optionen für jeden Remote-Computer speichern, zu dem Sie eine Verbindung herstellen.

Eine Beispiel-SSH-Konfiguration ist unten dargestellt:

Host dev HostName dev.linuxize.com User mike Port 4422

Wenn Sie den ssh-Client durch Eingabe von ssh dev aufrufen, liest der Befehl die Datei ~/.ssh/config und verwendet die für den dev-Host angegebenen Verbindungsdetails. In diesem Beispiel entspricht ssh dev dem Folgenden:

ssh -p 4422 [email protected]

Weitere Informationen finden Sie im Artikel zur SSH-Konfigurationsdatei.

Authentifizierung mit öffentlichem Schlüssel

Das SSH-Protokoll unterstützt verschiedene Authentifizierungsmechanismen.

Mit dem auf öffentlichen Schlüsseln basierenden Authentifizierungsmechanismus können Sie sich beim Remoteserver anmelden, ohne Ihr Kennwort eingeben zu müssen.

Diese Methode generiert ein Paar kryptografischer Schlüssel, die für die Authentifizierung verwendet werden. Der private Schlüssel wird auf dem Clientgerät gespeichert und der öffentliche Schlüssel wird an jeden Remoteserver übertragen, auf dem Sie sich anmelden möchten. Der Remoteserver muss so konfiguriert sein, dass er die Schlüsselauthentifizierung akzeptiert.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Sie werden aufgefordert, eine sichere Passphrase einzugeben. Ob Sie eine Passphrase verwenden möchten, liegt ganz bei Ihnen.

Sobald Sie Ihr Schlüsselpaar haben, kopieren Sie den öffentlichen Schlüssel auf den Remote-Server:

ssh-copy-id username@hostname

Geben Sie das Kennwort des Remotebenutzers ein, und der öffentliche Schlüssel wird an die Datei authorized_keys Remotebenutzers angehängt.

Nach dem Hochladen des Schlüssels können Sie sich beim Remote-Server anmelden, ohne zur Eingabe eines Kennworts aufgefordert zu werden.

Durch Festlegen einer schlüsselbasierten Authentifizierung können Sie den Anmeldevorgang vereinfachen und die allgemeine Serversicherheit erhöhen.

Port-Weiterleitung

SSH-Tunneling oder SSH-Portweiterleitung ist eine Methode zum Herstellen einer verschlüsselten SSH-Verbindung zwischen einem Client und einem Server, über die Service-Ports weitergeleitet werden können.

Die SSH-Weiterleitung ist nützlich, um Netzwerkdaten von Diensten zu transportieren, die ein unverschlüsseltes Protokoll verwenden, z. B. VNC oder FTP, auf geografisch eingeschränkte Inhalte zuzugreifen oder zwischengeschaltete Firewalls zu umgehen. Grundsätzlich können Sie jeden TCP-Port weiterleiten und den Datenverkehr über eine sichere SSH-Verbindung tunneln.

Es gibt drei Arten der SSH-Portweiterleitung:

Lokale Portweiterleitung

Mit der lokalen Portweiterleitung können Sie eine Verbindung vom Clienthost zum SSH-Serverhost und dann zum Zielhostport weiterleiten.

Um eine lokale Portweiterleitung zu erstellen, übergeben Sie die Option -L an den ssh Client:

ssh -L LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

Die Option -f weist den Befehl ssh an, im Hintergrund ausgeführt zu werden und -N keinen Remote-Befehl auszuführen.

Remote-Port-Weiterleitung

Remote Port Forwarding ist das Gegenteil von Local Port Forwarding. Es leitet einen Port vom Serverhost an den Clienthost und dann an den Zielhostport weiter.

Die Option -L weist ssh an, eine Remote-Port-Weiterleitung zu erstellen:

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

Dynamische Portweiterleitung

Durch die dynamische Portweiterleitung wird ein SOCKS-Proxyserver erstellt, der die Kommunikation über eine Reihe von Ports ermöglicht.

Um eine dynamische Portweiterleitung (SOCKS) zu erstellen, übergeben Sie die Option -D an den ssh-Client:

ssh -D LOCAL_PORT -N -f username@hostname

Ausführliche Informationen und schrittweise Anleitungen finden Sie im Artikel Einrichten des SSH-Tunnels (Portweiterleitung).

Fazit

Um eine Verbindung zu einem Remote-Server über SSH herzustellen, verwenden Sie den Befehl ssh gefolgt von dem Remote-Benutzernamen und dem Hostnamen ( ssh username@hostname ).

Die Verwendung des Befehls ssh ist für die Verwaltung von Remoteservern von entscheidender Bedeutung.

SSH-Terminal