Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
linux:ssh [2021/02/24 11:14] – [Troubleshooting] adi | linux:ssh [2024/02/26 14:23] (aktuell) – adi |
---|
| |
===== SSH Ohne Password ===== | ===== SSH Ohne Password ===== |
Möchte man per Skript einen Befehl über ssh senden, dann würde das Skript immer nach dem Password fragen. | Möchte man per Script einen Befehl über ssh senden, dann würde das Script immer nach dem Password fragen. |
Wenn dieses Skript dann aber per "cron" laufen soll, muss man hier eine andere Authentifizierungsmethode wählen: Host-Key | Wenn dieses Script dann aber per "cron" laufen soll, muss man hier eine andere Authentifizierungsmethode wählen: Host-Key |
| |
==== 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. |
echo | echo |
echo | echo |
echo "Dieses Skript kopiert den öffentlichen SSH-RSA Key auf den unten angegebenen PC." | echo "Dieses Script kopiert den öffentlichen SSH-RSA Key auf den unten angegebenen PC." |
echo "Danach kann man sich mit einer Passphrase am PC anmelden." | echo "Danach kann man sich mit einer Passphrase am PC anmelden." |
echo | echo |
<code bash>apt install autossh</code> | <code bash>apt install autossh</code> |
| |
Verbindungsskript zum Aufbau des Reverse SSH Tunnel anlegen. | Verbindungsscript zum Aufbau des Reverse SSH Tunnel anlegen. |
| |
Inhalt: | Inhalt: |
/usr/bin/autossh -p2000 -fNC -R 10011:<IP_REMOTEZIEL_SERVER | localhost>:22 <USER>@<SSH_GATEWAY_IP></code> | /usr/bin/autossh -p2000 -fNC -R 10011:<IP_REMOTEZIEL_SERVER | localhost>:22 <USER>@<SSH_GATEWAY_IP></code> |
| |
<code bash>chmod +x <SKRIPT>.sh</code> | <code bash>chmod +x <SCRIPT>.sh</code> |
| |
Nun noch das Skript per Crontab starten lassen | Nun noch das Script per Crontab starten lassen |
<code bash>crontab -e</code> | <code bash>crontab -e</code> |
Inhalt einfügen: | Inhalt einfügen: |
<code>@reboot <PFAD_ZU_SKRIPT.sh></code> | <code>@reboot <PFAD_ZU_SCRIPT.sh></code> |
| |
==== SSH-Tunnel erweitern ==== | ==== SSH-Tunnel erweitern ==== |
Wenn bei einer Verbindung folgende Antwort kommt: <code>Unable to negotiate with <IP-ADRESSE> port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1</code> | Wenn bei einer Verbindung folgende Antwort kommt: <code>Unable to negotiate with <IP-ADRESSE> port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1</code> |
Dann die Verbindung wie folgt aufbauen <code bash>ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 <IP-ADRESSE></code>oder <code bash>ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes256-cbc <IP-ADRESSE></code> oder <code bash>ssh -oHostKeyAlgorithms=+ssh-dss -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes256-cbc <IP-ADRESSE></code> | Dann die Verbindung wie folgt aufbauen <code bash>ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 <IP-ADRESSE></code>oder <code bash>ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes256-cbc <IP-ADRESSE></code> oder <code bash>ssh -oHostKeyAlgorithms=+ssh-dss -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes256-cbc <IP-ADRESSE></code> |
| |
| Man kann in der ''~/.ssh/config'' das auch dauerhaft für den Host definieren: |
| <code bash>Host <HOSTNAME> <FQDN> |
| KexAlgorithms diffie-hellman-group1-sha1 |
| Ciphers 3des-cbc</code> |
| |
Ggf. folgendes in der ''/etc/ssh/ssh_config'' einfügen/anpassen um die Parameter automatisch bei Verbindung zu verwenden: <code>KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1 | Ggf. folgendes in der ''/etc/ssh/ssh_config'' einfügen/anpassen um die Parameter automatisch bei Verbindung zu verwenden: <code>KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1 |
Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr</code> | Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr</code> |