Übersicht
Wie im Titel erwähnt, werden wir von einem Android-Telefon aus eine SSH-Verbindung zu unserem Linux-Server einrichten. Das bedeutet, dass wir mit diesem Setup von einer SSH-Android-Client-App aus innerhalb des LAN-Netzwerks auf unsere Linux-Server und auch auf Remote-Server – wie Cloud-Server – zugreifen können. Außerdem werden wir die Schritte zum Erstellen der SSH-Schlüssel und deren Installation auf unserem Server behandeln. Um dies alles einzurichten, müssen Sie bereits Zugriff auf den Server haben, auf dem Sie den SSH-Zugriff aktivieren möchten.
SSH-Setup auf dem Server
Wie bereits erwähnt, müssen Sie zunächst bereits Zugriff auf Ihren Linux-Server haben und auch das Terminal verwenden können. Ein weiterer wichtiger Punkt für dieses Setup ist, dass auf Ihrem Server ein SSH-Server installiert ist. Bei einigen Distributionen ist der SSH-Server standardmäßig installiert. Wenn Sie jedoch keinen SSH-Server installiert haben, können Sie beispielsweise den OpenSSH-Server installieren. Befehle zum Installieren des OpenSSH-Servers auf Debian/Ubuntu-basierten Distributionen:
sudo apt update && sudo apt upgrade -y sudo apt install openssh-server
Stellen Sie sicher, dass der SSH-Dienst gestartet wurde und ausgeführt wird:
sudo systemctl status ssh.service
Ausgabe für SSH-Dienststatus:
Wenn der Dienst nicht ausgeführt wird, führen Sie diese Befehle aus, um den Dienst zu starten und auch den automatischen Start beim Systemstart zu aktivieren:
sudo systemctl enable ssh sudo systemctl start ssh
Ein weiterer wichtiger Teil dieses Setups ist, wenn Sie eine Firewall auf Ihrem Server installiert haben. Sie müssen dann die Firewall konfigurieren, um den SSH-Verkehr darauf zuzulassen. Ein Beispiel:Wenn Sie die ufw-Firewall auf dem Server verwenden, müssen Sie diesen Befehl ausführen, um die SSH-Verbindung von Ihrem Android-Telefon oder einem anderen SSH-Client aus zuzulassen:
sudo ufw allow ssh
SSH-Android-Client-Setup
Sobald der SSH-Server installiert ist und der Dienst ausgeführt wird, können Sie bereits die SSH-Verbindung verwenden und sich auch auf Ihren Linux-Servern im LAN-Netzwerk und auf Cloud-Servern remote anmelden. Standardmäßig richtet der SSH-Dienst auf dem Server die Authentifizierung mit Benutzername und Passwort ein. Wenn Sie planen, nur innerhalb des LAN-Netzwerks auf den Server zuzugreifen, könnte dies für Sie ausreichen. Wenn Sie auch SSH-Schlüssel von Ihrem Android hinzufügen müssen, lesen Sie weiter.
Meine bevorzugte Android-SSH-Client-App ist JuiceSSH. Es kann zunächst kostenlos aus dem Play Store heruntergeladen werden, es hat viele Funktionen, unterstützt alle SSH-Verschlüsselungen, es hat eine eingebaute Tastatur für Sonderfunktionen und Tastenkombinationen und es beschränkt die Anzahl der Verbindungen nicht. Für dieses Tutorial verwenden wir JuiceSSH als Beispiel. Andere Android-SSH-Clients funktionieren ziemlich gleich, falls Sie andere bevorzugen.
Verbindung und Benutzerkonto einrichten
Wenn Sie die App starten, öffnen Sie die erste Option – Verbindungen (verwalten Sie Ihre Verbindungen).
Unter Verbindungen – alle Ihre Verbindungen zu den Servern werden gespeichert. Wir werden eine neue erstellen, aber vorher müssen wir eine Identität einrichten, auch bekannt als das Benutzerkonto für die SSH-Verbindung. Streichen Sie nach links zur Registerkarte Identitäten.
Spitzname ist optional. Legen Sie unter Benutzername das Benutzerkonto fest, das Sie zum Verbinden und Anmelden auf Ihrem Server verwenden möchten. Natürlich muss der Benutzername mit einem bestehenden Konto auf Ihrem Server übereinstimmen, z. B. – root. Das Festlegen des Passworts ist ebenfalls optional. Wenn Sie nicht jedes Mal nach dem Passwort gefragt werden möchten, wenn Sie eine Verbindung herstellen möchten, legen Sie es fest und die App speichert das Passwort. Der private Schlüssel wird im nächsten Absatz behandelt.
Nachdem Sie den Benutzer für die App erstellt haben, kehren Sie zur Registerkarte Verbindungen zurück und erstellen Sie eine neue Verbindung. Der Spitzname ist wiederum optional, kann aber nützlich sein, wenn Sie mehr als einen Server zum Verbinden haben. Typ ist natürlich SSH. Adresse ist die IP-Adresse Ihres Servers. Wenn es sich um ein LAN-Netzwerk handelt, müssen Sie die lokale IP-Adresse Ihres Servers eingeben. Für diesen Fall ist es eine gute Option, eine statische IP-Adresse auf Ihrem Server festzulegen.
Wenn Sie jedoch eine Verbindung zu einem Cloud-Server herstellen möchten, müssen Sie die öffentliche IP-Adresse Ihres Servers hinzufügen. Und zum Schluss müssen Sie die Identität oder das Benutzerkonto auswählen, das Sie für den Zugriff auf den Server verwenden möchten. Danach müssen Sie sich mit Ihrem Server verbinden können. Bisher funktioniert diese SSH-Verbindungseinrichtung also und Sie können eine Verbindung herstellen, aber dies ist ohne SSH-Schlüssel auf Ihrem Android-Telefon.
SEHR EMPFOHLEN
Wenn Sie Ihrem Server eine sicherere Verbindung hinzufügen und SSH-Schlüssel installieren möchten, insbesondere wenn Sie eine Verbindung zu einem Remote-Cloud-Server herstellen müssen, lesen Sie bitte weiter. Es wird dringend empfohlen, SSH-Schlüssel zu Ihren Remote-Servern hinzuzufügen.
SSH-Schlüssel generieren
Bitte beachte, sei bei den nächsten Schritten vorsichtig, sonst könntest du dich selbst aus dem Server aussperren. In der JuiceSSH-App müssen wir die SSH-Schlüssel für das Konto generieren, das wir verwenden werden.
Navigieren Sie in der App erneut zur Registerkarte Identitäten, halten Sie den Finger auf die Identität, für die Sie die SSH-Schlüssel generieren möchten, bis das Popup-Menü angezeigt wird, und wählen Sie die Option Bearbeiten aus.
Klicken Sie dann auf die Schaltfläche – AKTUALISIEREN/LÖSCHEN direkt neben der Bezeichnung „Privater Schlüssel“. Wenn Sie jedoch zum ersten Mal eine neue Identität/einen neuen Benutzer erstellen, steht auf der Schaltfläche „SET“ direkt neben der Bezeichnung „Privater Schlüssel“.
Sobald Sie das Schlüsselmenü erhalten, navigieren Sie zur Registerkarte „Generieren“. Schlüsselformat wählen Sie RSA. Schlüsselstärke wählen Sie mindestens 2048bit oder besser 4096bit. Die Passphrase ist optional, aber es ist eine zusätzliche Sicherheitsebene, also schadet es nicht, diese auch hinzuzufügen, wenn Sie möchten. Klicken Sie abschließend auf OK und speichern Sie die Änderung. Es dauert eine Minute, bis die Schlüssel generiert sind.
Nächster Schritt, während Sie noch in der App sind – halten Sie den Finger erneut auf die Identität und wählen Sie diesmal die Option – Exportieren Sie den öffentlichen Schlüssel und kopieren Sie ihn. Notieren Sie es gut und speichern Sie es.
JuiceSSH wird jetzt jedes Mal neu generiert für dieses Konto verwenden.
SSH-Schlüssel installieren
Jetzt wieder auf den Server. Jetzt müssen wir diesen neuen öffentlichen Schlüssel hinzufügen, den wir gerade erstellt und kopiert haben. Öffnen Sie das Terminal und navigieren Sie zum .ssh-Ordner des Benutzers und bearbeiten Sie die autorisierte Schlüsseldatei. Wenn die Datei nicht vorhanden ist, erstellen Sie sie. Mit diesem Befehl können Sie beides tun:
sudo nano .ssh/authorized_keys
Fügen Sie in dieser Datei Ihren Schlüssel ein, speichern Sie die Datei und beenden Sie sie.
Als nächstes werden wir die SSH-Serverkonfiguration ändern. Dort müssen wir dem Server mitteilen, dass er die Datei „authorized_keys“ verwenden und unsere SSH-Schlüssel lesen soll.
BITTE ERNEUT BEACHTEN
Normalerweise ist es eine empfohlene und sicherere Option, die standardmäßige Passwort-Anmeldeoption zu deaktivieren (um Brute-Force-Angriffe auf unseren Server zu verhindern) und die Anmeldung nur mit den SSH-Schlüsseln zu aktivieren. Bevor Sie die Konfiguration abschließen, überprüfen Sie alles, was Sie getan haben, und seien Sie vorsichtig, um sich nicht vom Server auszusperren. Natürlich ist es kein Weltuntergang, wenn Sie ausgesperrt werden, es kann nur etwas umständlicher werden, die Änderungen zu korrigieren. Mit Servern im LAN greifen Sie direkt/psychisch auf sie zu und korrigieren die Änderungen und jetzt bieten Cloud-Anbieter ihren Benutzern im Dashboard ein virtuelles Terminal mit direktem Zugriff auf Ihren Server und damit können Sie die Änderungen auch korrigieren. Aber wenn Sie diese Art von Szenario nicht haben und nur die Möglichkeit haben, sich per SSH auf Ihren Remote-Server einzuloggen, seien Sie vorsichtig.
SSH-Serverkonfiguration
Navigieren Sie nun zur SSH-Serverkonfiguration und nehmen Sie die Änderungen wie unten gezeigt vor:
Befehl für die SSH-Serverkonfiguration:
sudo nano /etc/ssh/sshd_config
Suchen Sie dann die folgenden Optionen, kommentieren Sie sie aus und bearbeiten Sie sie so, dass sie wie folgt aussehen:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 PasswordAuthentication no
Nachdem Sie die Änderungen vorgenommen haben, speichern Sie die Konfiguration und starten Sie den SSH-Dienst neu, damit die Änderungen übernommen werden.
sudo systemctl restart ssh
Danach sollten Sie sich von Ihrem Android-Telefon mit SSH-Schlüsseln über eine SSH-Verbindung bei Ihrem Linux-Server anmelden können.
Hier sind ein paar Bilder, wie die erfolgreiche SSH-Verbindung aussieht:
Zusammenfassung
Dies war der Einrichtungsprozess für die SSH-Verbindung zu einem Linux-Server für Ihr Android-Telefon. Mit dieser Einrichtung sollten Sie in der Lage sein, sich von Ihrem Android aus über SSH mit Ihren Servern zu verbinden.
Vielen Dank für Ihre Zeit…