Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
linux:ssh [2020/10/02 07:40] – [Reverse SSH] adi | linux:ssh [2024/02/26 14:23] (aktuell) – adi | ||
---|---|---|---|
Zeile 11: | Zeile 11: | ||
===== SSH Ohne Password ===== | ===== SSH Ohne Password ===== | ||
- | Möchte man per Skript | + | Möchte man per Script |
- | Wenn dieses | + | Wenn dieses |
- | ==== RSA-Key erstellen ==== | + | ==== Public-Key erstellen ==== |
So erstellt man einen RSA Host-Key: | So erstellt man einen RSA Host-Key: | ||
- | ssh-keygen -t rsa | + | ssh-keygen -t [rsa|Ed25519] |
Zunächst fragt das Programm nach dem Pfad zur RSA-Datei. Diesen kann man einfach bestätigen. | Zunächst fragt das Programm nach dem Pfad zur RSA-Datei. Diesen kann man einfach bestätigen. | ||
Nimmt man hier aber einen anderen Dateinamen oder Pfad, muss man bei der SSH-Verbindung den Pfad explizit angeben. | Nimmt man hier aber einen anderen Dateinamen oder Pfad, muss man bei der SSH-Verbindung den Pfad explizit angeben. | ||
Zeile 45: | Zeile 45: | ||
echo | echo | ||
echo | echo | ||
- | echo " | + | echo " |
echo " | echo " | ||
echo | echo | ||
Zeile 71: | Zeile 71: | ||
===== Reverse SSH ===== | ===== Reverse SSH ===== | ||
- | Reverse SSH Tunnel können genutzt werden um Zugriff auf ein Remote SSH-Client | + | Reverse SSH Tunnel können genutzt werden um Zugriff auf ein Remote SSH-Server/ |
- | Remoteclient | + | Remote-Ziel-Server < |
==== Vorbereitungen auf dem Gateway ==== | ==== Vorbereitungen auf dem Gateway ==== | ||
Zeile 87: | Zeile 87: | ||
Die 3. Zeile aktivert den Gateway-Modus und die 4. Zeile aktiviert das Weiterleiten von TCP-Paketen. | Die 3. Zeile aktivert den Gateway-Modus und die 4. Zeile aktiviert das Weiterleiten von TCP-Paketen. | ||
- | ==== Verbindugn | + | ==== Verbindung |
- | Die SSH-Verbindung vom Remoteclient | + | Die SSH-Verbindung vom Remote-Ziel-Server |
- | <code bash>ssh -p2000 -fNC -R 10011:<IP_REMOTECLIENT | + | <code bash>ssh -p2000 -fNC -R 10011:<IP_REMOTEZIEL_SERVER |
^Parameter ^ Beschreibung ^ | ^Parameter ^ Beschreibung ^ | ||
| –p2000 | (optional) anderer Port anstatt von " | | –p2000 | (optional) anderer Port anstatt von " | ||
Zeile 96: | Zeile 96: | ||
| C | (optional) Komprimierung einschalten, | | C | (optional) Komprimierung einschalten, | ||
| -R | Reverse Tunnel aufgebauen | | | -R | Reverse Tunnel aufgebauen | | ||
- | | 10011 | Ausgangsport des Gateways zum Remoteclient, darüber verbindet man sich vom Gateway zum Remoteclient | + | | 10011 | Ausgangsport des Gateways zum Remote-Ziel-Server, darüber verbindet man sich vom Gateway zum Remote-Ziel-Server |
- | | localhost | Hier ist der Remoteclient | + | | localhost | Hier ist der Remote-Ziel-Server |
- | | 22 | SSH-Eingangsport am Remoteclient | + | | 22 | SSH-Eingangsport am Remote-Ziel-Server |
- | ==== Verbindung Gateway zum Remoteclient | + | ==== Verbindung Gateway zum Remote-Ziel-Server |
- | Hiermit verbindet man sich vom Gateway zum Remoteclient. | + | Hiermit verbindet man sich vom Gateway zum Remote-Ziel-Server. |
- | <code bash>ssh -p10011 <IP_REMOTECLIENT | + | <code bash>ssh -p10011 <IP_REMOTEZIEL_SERVER |
==== Autossh ==== | ==== Autossh ==== | ||
Zeile 108: | Zeile 108: | ||
<code bash>apt install autossh</ | <code bash>apt install autossh</ | ||
- | Verbindungsskript | + | Verbindungsscript |
Inhalt: | Inhalt: | ||
< | < | ||
- | / | + | / |
- | <code bash> | + | <code bash> |
- | Nun noch das Skript | + | Nun noch das Script |
<code bash> | <code bash> | ||
Inhalt einfügen: | Inhalt einfügen: | ||
- | < | + | < |
==== SSH-Tunnel erweitern ==== | ==== SSH-Tunnel erweitern ==== | ||
Mit Reverse SSH kann man auch andere Ports, wie z.B. HTTP erreichen. | Mit Reverse SSH kann man auch andere Ports, wie z.B. HTTP erreichen. | ||
Dazu erweitert man die Verbindung um eine weitere " | Dazu erweitert man die Verbindung um eine weitere " | ||
- | <code bash>ssh -p2000 -fNC -R 8000:<IP_REMOTECLIENT | + | <code bash>ssh -p2000 -fNC -R 8000:<IP_REMOTEZIEL_SERVER |
- | Hier wird der Port 8000 von Außen auf den Port 80 umgeleitet. Läuft der Webserver auf einem anderen Gerät, wird anstatt ''< | + | Hier wird der Port 8000 von Außen auf den Port 80 umgeleitet. Läuft der Webserver auf einem anderen Gerät, wird anstatt ''< |
===== Troubleshooting ===== | ===== Troubleshooting ===== | ||
Wenn bei einer Verbindung folgende Antwort kommt: < | Wenn bei einer Verbindung folgende Antwort kommt: < | ||
- | Dann die Verbindung wie folgt aufbauen <code bash>ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 < | + | Dann die Verbindung wie folgt aufbauen <code bash>ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 < |
+ | |||
+ | Man kann in der '' | ||
+ | <code bash> | ||
+ | KexAlgorithms diffie-hellman-group1-sha1 | ||
+ | Ciphers 3des-cbc</ | ||
Ggf. folgendes in der ''/ | Ggf. folgendes in der ''/ | ||
Ciphers 3des-cbc, | Ciphers 3des-cbc, |