Schlagwort-Archive: Microsoft Windows 10

Microsoft Windows 10 Windows-Betriebssysteme sind vor allem auf Personal Computern und Servern verbreitet.

OpenSSH in Windows 10

OpenSSH für Windows

Mit dem Build 1709 „Fall Creators Update“ hat Windows 10 auch ein paar versteckte Features eingeführt, die für Linux Admins und Poweruser interessant sind. Das beste für Linux- und Unix-Anwender ist vermutlich die Integration des SSH-Client und Server, wie bereits vor zwei Jahren angekündigt, der auf OpenSSH basierte SSH-Client.

Der Windows 10 SSH-Client

Um den SSH-Client auf Windows 10 zu aktivieren, gib man in der Eingabeaufforderung folgendes Command ein.

dism /online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0

Anschließend kann der Client, der unter dem Pfad  „C:\WINDOWS\System32\OpenSSH“ installiert wurde, aus dem CLI wie von der Linux Shell gewohnt genutzt werden, beispielsweise auch ein lokales und Remote-Port-Forwarding steht zur Verfügung.

ssh -i C:\Users\homer\ssh\privkey.pem homer@lisa.simpson.home

                SSSSS  OOOO  L        AA   RRRRR   III  SSSSS
               S      O    O L       A  A  R    R   I  S
               S      O    O L      A    A R    R   I  S
                SSSS  O    O L      AAAAAA RRRRR    I   SSSS
                    S O    O L      A    A R R      I       S
                    S O    O L      A    A R  R     I       S
               SSSSS   OOOO  LLLLLL A    A R   R   III SSSSS

Linux Version 2.6.32-642.1.1.el6.x86_64, Compiled #1 SMP Tue May 31 21:57:07 UTC 2016
    Two 2.67GHz Intel Pentium Xeon Processors, 16GB RAM, 10667 Bogomips Total
                       Uptime 1482 days 17 hours 43 minutes
                                 lisa.simpson.home


homer@thinkpad0@lisa.simpson.home's password:

Die Windows-native OpenSSH-Implementierung, die Remote-Sitzungen in der Eingabeaufforderung „cmd“ und in der PowerShell ermöglicht, erlaubt nun ohne SSH-Tools auszukommen, wie es das Windows-Subsystem für Linux (WSL) mit bash on Windows, PuTTY oder KiTTY und dergleichen wäre.

Sollen Dienstprogrammen wie vi, top, man, multitail und weitere verwendet werden, macht man die besten Erfahrungen, in dem man die Windows SSH-Client Verbindung mit einem * nix-Server hat, das Terminal für einen xterm-ähnlichen Rendering-Modus konfiguriert.

TTY Support in Windows OpenSSH

Öffne hierzu die Eingabeaufforderung (cmd) und klicke mit der rechten Maustaste im Fenster oben links auf das kleine Icon    dann unten auf Eigenschaften.

Abbildung: Eigenschaften von Eingabeaufforderung

Stelle sicher dass Legacykonsole (erfordert Neustart) nicht deaktiviert ist.

Des Terminal Fenster sollte eine probate Größe haben, entsprechend zum gewählten Font und dessen Größe.

Abbildung: Eigenschaften von Eingabeaufforderung – Layout

Im Register Layout die Fensterbreite und Buffergrösse auf 110 setzen.

Für TTY und PTY wird der VT100 Terminal Emulator unterstützt, dazu benötigt es die Umgebungsvariable XTERM diese in der Windows MMC-Konsole mit Win + R control sysdm.cpl,,3 gesetzt werden kann.

Unten auf Umgebungsvariablen klicken und im Abschnitt Systemvariablen auf Neu klicken und die Variable TERM=xterm eintragen.

Das Fenster schließen und wieder öffnen, nun ist das TTY Terminal in einer SSH Verbindung anwendbar.

Hinweis zur Implementierung

Windows verfügt über keine integrierte Unterstützung für ein Pseudoterminal.

Die Windows-Version des OpenSSH-Servers implementiert einen VT100 PTY, indem Windows Console-Ereignisse abgefangen werden. Dies ist in ssh-shellhost.exe implementiert, verbunden mit sshd über stdout input/output. Auf einer high-level Ebene fungiert ssh-shellhost.exe als Vermittler zwischen sshd und einer Windows-Konsole, die Folgendes ausführt:

Interpretiert eingehende VT100, Prozesse und Aufrufe von Windows Console IO.

Verarbeitet die Ereigniswarteschlange der Windows-Konsole (Ausgabe), übersetzt sie in VT100 und gibt sie auf stdout aus.

Wake On LAN

Wake on LAN mit Linux, Windows und Synology

Entfernte Geräte starten mit Wake on LAN (WOL), ein 1995 von AMD in Zusammenarbeit mit HPE veröffentlichter Standard, um ausgeschaltete Computer über die Netzwerkkarte zu starten, diese ACPI unterstützen. Allgemeine Voraussetzung für WOL ist, dass die Netzwerkkarte über den Standby-Strom des Netzteils weiterhin mit Strom versorgt wird, auch wenn der Computer ausgeschaltet ist.

Die Netzwerkkarte wartet auf ein so genanntes Magic Packet, bei dessen Empfang der Computer eingeschaltet wird. Das Datenpaket ist entweder direkt an die Netzwerkkarte adressiert oder wird als Broadcast verschickt. Es enthält sechsmal in Folge den hexadezimalen Wert FF; unmittelbar danach erscheint die ununterbrochene 16-malige Wiederholung der MAC-Adresse der Netzwerkkarte des jeweiligen Zielsystems.

Wake on LAN unter Linux

Unter GNU/Linux gibt es das Tool „wakeonlan“, welches falls nicht schon installiert, wie folgt bereitgestellt wird.

$ sudo apt install etherwake

Der Linux Befehl um ein Computer mit WOL zu starten ist wakeonlan.

$ wakeonlan -i 10.10.10.1 00:11:22:33:44:55
Sending magic packet to 10.10.10.1 with 00:11:22:33:44:55

Ubuntu und Debian sendet ein Magic Packet mit wakeonlan zur MAC-Adresse eines Gerätes um es einzuschalten.

$ wakeonlan 00:00:33:44:55:66
Sending magic packet to 255.255.255.255:9 with 00:22:33:44:55:66

Hilfe zu Optionen erhält man mit dem Befehl: etherwake -u

Fedora wiederum weckt mit ether-wake, auch CentOS und RHEL.

$ sudo ether-wake -i eno1 00:11:22:33:44:55

mit-i eno1ist hier das Ethernet Interface gemeint.

Die MAC-Adresse erhält man mit dem Befehlarpwie folgt.

$ ping -c 4 10.10.10.1 && arp -n

Wake on LAN mit Synology

Synology DSM hat mit synonet in der Busybox Shell sein eigenes Tool.

$ synonet --wake xx:xx:xx:xx:xx ethX

WON für Windows

Microsoft Windows hat kein WOL Onboard, ein zuverlässiges WOL bietet hier WakeMeOnLan von Nirsoft.

WakeMeOnLan von Nirsoft.

WOL in macOS

Da auch macOS standardmäßig mit Python kommt, kann man sich eines Scripts behelfen, die folgenden Zeilen ermöglicht ein WON auf dem Mac.

#!/usr/bin/env python

import socket
import sys

if len(sys.argv) < 3:
    print "Usage: wake.py <IP> <MAC>   (example: 192.168.1.255 00:11:22:33:44:55)"
    sys.exit(1)

mac = sys.argv[2]
data = ''.join(['FF' * 6, mac.replace(':', '') * 16])
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(data.decode("hex"), (sys.argv[1], 9))

Den Script speichern und aus dem macOS Terminal ausführen.

$ python wake.py 192.168.1.255 00:11:22:33:44:55