Schlagwort-Archive: OpenSSH Secure Shell

OpenSSH Secure Shell provides a large suite of secure tunneling capabilities, several authentication methods, and sophisticated configuration options.

OpenSSH on Windows

OpenSSH ist das führende Konnektivitätstool für die Remote-Anmeldung mit dem SSH-Protokoll in Unix/Linux Umgebungen.

OpenSSH verschlüsselt den Datenverkehr, darüber hinaus bietet OpenSSH eine große Auswahl an sicheren Tunneling-Funktionen, mehrere Authentifizierungsmethoden und anspruchsvolle Konfigurationsoptionen.

Für die Remoteverwaltung in heterogenen Netzwerken, haben Windows und Unix/Linux nicht viel gemeinsames. Unter Unix/Linux ist der Remote-Zugriff per SSH ein Standard für Datentransfer, Remote-Terminal sowie Port-Forwarding für Remote-X. Unter Windows ist ein wirklicher Standard noch nicht erreicht, neben WinRM, PowerShell-Remote, RDS und RSAT gibt es einige mehr. Hinzugekommen ist nun auch ein Port des freien OpenSSH Client/Server Tools, dies ermöglicht weitere Integration und Verwaltung von Windows und Linux/Unix Umgebungen.

Die OpenSSH Suite ist auf Github verfügbar und besteht aktuell aus folgenden Tools:

  • Remote-Operationen werden mit ssh, scp und sftp durchgeführt
  • Key Management mit ssh-add, ssh-keygen
  • Die Service-Seite besteht aus sshd, sftp-server und ssh-agent
Win32 OpenSSH Installation

Nach dem Download das Zip-Archive in C:\Program Files\OpenSSH entpacken.

Starte PowerShell als Administrator und wechsle in den Pfad C:\Program Files\OpenSSH und führe folgende Aktion aus.

cd "C:\Program Files\OpenSSH"
powershell -executionpolicy bypass -file install-sshd.ps1

Die SSH-Host-Schlüssel generieren mit allen Schlüssel die sshd für Key-auth erwartet.

.\ssh-keygen.exe -A

Die Firewall auf Windows Server für SSH erweitern.

New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH

Bei der Windows Workstation werden eingehende SSH Verbindungen wie folgt erlaubt.

netsh advfirewall firewall add rule name='SSH Port' dir=in action=allow protocol=TCP localport=22

Der SSH-Agent hält den privaten Schlüssel im Arbeitsspeicher.

Start-Service ssh-agent

Nun können SSH Verbinden aufgebaut werden.

./ssh user@10.10.10.10
./ssh -i privkey.pem user@10.10.10.10
./scp file user@10.10.10.10:/tmp
openSSH-client

Den SSH Daemon Auto-start (Boot) aktivieren.

Set-Service sshd -StartupType Automatic
Set-Service ssh-agent -StartupType Automatic

Ein Schlüsselpar wird wie folgt generiert.

PS C:\Program Files\OpenSSH> ssh-keygen -t rsa -b 4096 -C "user@mydomain.com"
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\user/.ssh/id_rsa): user
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in user.
Your public key has been saved in user.pub.
The key fingerprint is:
SHA256:lbPo7eEQFzaS3GFBImQG/X4H963KEOwrc3xPWeBj2Wc user@mydomain.com
The key's randomart image is:
+---[RSA 4096]----+
|    .+= ..=.     |
|     o.o = o     |
|       .+ O   .  |
|        .*.=.. + |
|       .S =o .=.E|
|       ..=.....=o|
|        oo=.  o. |
|        o+o=...  |
|         ++.oo.  |
+----[SHA256]-----+

PuTTY SSH Port Forwarding

SSH Tunnel mit PuTTY

PuTTY kann mehr als nur Terminal Sessions herstellen, mit der Option SSH port forwarding lassen sich auf einfache weise SSH-Tunnels initialisieren.

Nach dem PuTTY gestartet ist, trägt man unter Host Name die IP des Ziel Host, oder den Server Name ein, dies ist in der regel eine Firewall, ein Router oder ein Host mit globaler IP Adresse.

PuTTY-Configuration SSH Port forwarding
PuTTY-Configuration SSH Port forwarding

Hier in unserem Beispiel wird auf dem Host 212.117.203.98, unsere PBX mit dem Port forwarding zu einem SIP-Phone hergestellt, um dieses danach über den Webbrowser zu konfigurieren, der Host kann auch ein FQDN eines DNS auflösbaren Host sein.

PuTTY SSH tunnel port forwarding
PuTTY SSH tunnel port forwarding

Im unteren Teil bei SSH wird der Punkt Tunnels ausgewählt. Danach wird der Startpunkt und der Endpunkt des Tunnels eingetragen: Source port: 8888
Destination: 172.30.10.10:80

PuTTY SSH forwarded port
PuTTY SSH forwarded port

Abgeschlossen wird die Aktion mit einem Klick auf Add. Damit sind die Daten des Tunnels übernommen. Die Einstellungen werden oben beim Punkt Session mit Klick auf Save Permanent gespeichert.

Mit einem Klick auf Load und Open wird die Verbindung aufgebaut. Es öffnet sich die bekannte Terminal Konsole mit der Aufforderung sich einzuloggen. Dort loggt man sich als normaler User ein, damit wird der Tunnel etabliert.

Nun öffnet man den Webbrowser und gibt folgende Localhost Adresse ein: https://127.0.0.1:8888/. Danach beginnt, wie hier in unserem Beispiel der Anmeldedialog des SIP-Phone WebGUI welches wir nun konfigurieren können. Weitere Möglichkeiten SSH-Tunnels zu nutzen, bieten sich an für Synology DS, SAN Speicher, Unix/Linux Hosts oder Mac OS X an.

Hinweis:
Auf dem Server muss die SSH-Option AllowTcpForwarding yes aktiviert sein, Default ist yes in der Server Konfigurationsdatei /etc/ssh/sshd_config eingetragen.

Für den Host hinter einer Firewall muss dieser über Port 22 Static NAT forward erreichbar sein.

PuTTY kann mittels Übergabe zahlreicher Parameter genutzt werden.

PUTTY-Verknüpfung
PUTTY-Verknüpfung

Folgende Zeile als Ziel zur Verknüpfung einfügen:
„C:\Program Files (x86)\PuTTY\PUTTY.EXE“ -l jolly -pw password -4 -L 8888:172.30.10.10:80 -X :0 -load PBX

Wobei die Parameter folgendes bedeuten:
-l  der Loginname
-pw  das Passwort
-4  es soll IPv4 verwendet werden
-L  der Destination Port und die IP
-X  für X11 forwarding
-load  gespeicherte Session öffnen