Skip to main content

ssh

OpenSSH Server installieren mit

sudo apt-get install openssh-server 

Wenn sich mal der key geändert hat

sed -i '$NUMd' ~/.ssh/known_hosts

veralteten Schlüssel erstmal auf dem Client mit dem Befehl

ssh-keygen -R hostname

aus der known_hosts-Datei entfernen.

Authentifizierung über Public-Keys Wichtig bei Servern

http://wiki.ubuntuusers.de/SSH

Schlüsselpaar generieren

ssh-keygen -t rsa -C benutzername -b 4096
chmod 400 /home/BENUTZERAME/.ssh/id_rsa

Pubkey auf entfernten Server kopieren

Funktioniert nur, wenn auf dem Ziel-Rechner die Passwort-Authentifikation noch aktiviert ist!

ssh-copy-id -i ~/.ssh/rsa.id user@host

Alternative

cat ~/.ssh/id_rsa.pub | ssh -p23 user@host install-ssh-key

user@host's password:
Key No. 1 (ssh-rsa user@host) was installed in RFC4716 format
Key No. 1 (ssh-rsa user@host) was installed in OpenSSH format

SSH Tunnel

Beispiel: Drucker per SSH einrichten

Die Druckerverwaltung kann üblicherweise mit Cups im Browser erfolgen Einfach http://localhost:631 eingeben. Um einen Drucker von einem entfernten Rechner einzurichten verwendet man

ssh -L 8631:localhost:631 benutzer@hostname

Anschließend im Browser http://localhost:8631 eingeben und man kann die Drucker wie gewohnt verwalten.

ssh -L localport:zielrechner:ziel_port -l username rechner

Beispiel: Per SSH auf Rechner Bastion und von dort auf die Oracle-DB Port 1521. Lokal wird diese DB über localhost:5500 angesprochen

ssh -L 5500:db.foo:1521 -l username bastion.foo

Beispiel: E-Mail Port 993 ist von außen gesperrt, aber Port 1993 (offenen Port suchen/testen) nicht. Dann:

ssh -L 1993:imap.mydomain.de:993 -l proxyusername myproxy.de

Im Email Client gibt man nun localhost mit Port 1993 und SSL bzw TLS an. Fertig.

# tunnel auf in Hintergrund mit ssh tunnel-socket

ssh -M -S tunnel-socket -fnNT -L 22375:10.49.10.139:2375 -tt -o StrictHostKeyChecking=no -l jenkins 10.95.191.91
                          

# check tunnel

ssh -S tunnel-socket -O check 10.49.10.139
                          

# docker magie

export DOCKER_HOST=tcp://127.0.0.1:22375
docker ps

# close tunnel ssh -S tunnel-socket -O exit 10.49.10.139

SSH mit X11 Forwarding

Möchte man Programme mit grafischen Benutzeroberflächen, also Firefox oder Ähnliche, auf einem anderen Rechner ausführen und aber lokal die Fenster sehen, so geht dies mit

ssh -X

stellt eine SSH Verbindung zu server her und leitet alle X11 Verbindungen zum lokalen Rechner um. Wird auf dem Server nun in der SSH Sitzung Firefox gestartet, so erscheinen die Fenster im lokalen Windowmanager.

=== Verbindung von Rechner1 über Rechner2 zu Rechner3 ===B. xterm

Ein grafisches Programm z.B. xterm soll auf Rechner3 gestartet werden

ssh -t -X rechner2 ssh -t -X rechner3 xterm

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

Die Fehlermeldung erscheint, wenn sich der Fingerabdruck des Hosts geändert hat. Um nicht die komplett Known_hosts zu löschen, reicht es nur die Zeile zu entfernen.

The fingerprint for the ECDSA key sent by the remote host is SHA256:L2SRrxvks50rfijnP3IIOF6zLyU5o2v24hUPOjDX360. Please contact your system administrator. Add correct host key in /home/benutzer/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /home/benutzer/.ssh/known_hosts:96

sed -i '96d' ~/.ssh/known_hosts