7
November
2025
15:50

Computerzeit per GPS auf dem Smartphone über SSH einstellen

7 November 2025 15:50

Diese Methode bietet eine Genauigkeit von bis zu 2-3 Sekunden, da die Anfrage-Antwort über SSH Zeit braucht.

Einführung. Allgemeine Idee

Das Einstellen von Datum und Uhrzeit ist eine dringende Aufgabe, wenn keine 4G-Datenübertragung vorhanden ist.

Diese Methode verwendet GPS-Satelliten:

  • Zunächst wird das Smartphone über GPS/GLONASS-Satelliten synchronisiert.
  • dann verbindet sich der Computer per ssh mit dem Smartphone und stellt die Uhrzeit im Betriebssystem entsprechend der Smartphone-Uhr ein (die PC-Uhr wird jedoch aufgrund der Anfrage-Antwort irgendwann um 2-3 Sekunden nacheilen).

Warum kein NTP- oder SNTP-Server?

  • ВEin Android-Benutzer darf Ports über 1024 (einschließlich) verwenden. Daher ist es in Android nicht möglich, einen NTP-Server so zu betreiben, dass sein Port 123 wird. Alle Linux-Dienstprogramme stellen zur Zeitsynchronisierung eine Verbindung zu Port 123 her.

ПоэIch habe eine andere Option verwendet – SSH mit einem beliebigen Port über 1023. In diesem Fall wird der von SSHdaemon vorgeschlagene Port verwendet – 8022, es kann aber alles im Bereich 1024-49151 sein.

Überprüfen, ob der Port lauscht (offen):

nmap 192.168.1.57 -p 1025

Es sollte so sein:
Starten von Nmap 7.80 (https://nmap.org) am 07.11.2025 um 16:16 Uhr MSK
Nmap-Scanbericht für ... (192.168.1.57)
Host ist aktiv (0,45 s Latenz).

HAFENSTAATSDIENST
1025/tcp offenes NFS oder IIS

Nmap fertig: 1 IP-Adresse (1 Host aktiv) in 0,77 Sekunden gescannt

Ich habe die Anwendung als SSH-Server in Android verwendet https://play.google.com/store/apps/details?id=com.daemon.ssh.

Der Zugriff auf SSH erfolgt per Passwort.

Mobiler WLAN-Hotspot oder WLAN-Router, bei dem sich PC und Smartphone im selben lokalen Netzwerk befinden.

Lösung

Dieser Code wurde von mir in Linux Mint und Android debuggt:

sudo date +"%Y-%m-%d %T" --set "$(echo date +'%Y-%m-%d_%T' | sshpass -fpwd ssh -q 192.168.1.57 -p 8022 -l user | sed -e 's/_/ /')" 

wo
setpass – ein Dienstprogramm zur Verwendung eines Passworts anstelle von Schlüsseln,
pwd – Dateiname. welches das SSH-Passwort speichert. pwd kann je nach Dateiname durch einen anderen Text ersetzt werden, zum Beispiel „1“ oder „a“.
ssh – Befehlszeilenprogramm zum Herstellen einer Verbindung zu einem SSH-Server,
8022 – SSH-Server-Port im Android-Betriebssystem,
-l Benutzer – Anmeldename des SSH-Benutzers,
q – leiser SSH-Modus ohne Ausgabe unnötiger Nachrichten,
192.168.1.57 – IP-Adresse des SSH-Servers (für Android),
sed – um den Unterstrich durch ein Leerzeichen zu ersetzen,

date --set – Befehl zum Einstellen der Uhrzeit auf dem lokalen Computer.

Deaktivieren Sie vor dem Ausführen des Dienstprogramms die NTP-Zeitsynchronisierung über das Netzwerk:

timedatectl set-ntp false
timedatectl

Erläuterung des Funktionsprinzips

Im Internet bin ich in Foren auf eine vereinfachte Möglichkeit gestoßen, die PC-Zeit über die SSH-Konsole einzustellen – Secure Socket Shell, über die der Befehl ausgeführt wird date auf einem Remote-PC.

Die Optionen sind wie folgt:

date --set="$(ssh user@server date)" 

ssh user@server sudo date -s @`( date -u +"%s" )` 

Datum +%Y%m%d%T -s "`ssh user@server 'date "+%Y%m%d %T "'`" 

date --set="$(ssh user@server 'date -u')"

Ich habe mit dem Debuggen der ersten Version des Befehls „date --set=" begonnen.

Manuelles Einstellen der Uhrzeit über die Befehlszeile unter Linux:

sudo date +"%Y-%m-%d %H:%M:%S" --set "2025-11-07 14:40:00" 

Anzeige des aktuellen Datums und der aktuellen Uhrzeit im gewünschten Format in Android oder Linux

date +"%Y-%m-%d %H:%M:%S" 

(Ergebnis: 2025-11-07 16:09:45).

Herstellen einer Verbindung zu einem SSH-Server unter Linux

Manuelle Verbindung mit Passwortabfrage:

ssh user@192.168.1.57 -p 8022

oder

ssh 192.168.1.57 -p 8022 -l user

Dabei ist user der Anmeldename des SSH-Benutzers auf dem Server, auf den Zugriff gewährt wird.
192.168.1.57 – IP-Adresse des SSH-Servers,
8022 ist der TCP-Port, den der SSH-Server verwendet.

Automatisierte Verbindung zum SSH-Server mit Passwort:

sshpass -fpwd ssh -q 192.168.1.57 -p 8022 -l user

Dabei ist pwd eine Textdatei im aktuellen Verzeichnis, die das SSH-Passwort enthält.

(Anstelle von -fpwd können Sie das Klartext-Passwort -ppassword verwenden, was ich nicht empfehle. Zwischen -f und dem Dateinamen oder dem Schalter -p und dem Passwort steht kein Leerzeichen. Siehe Hilfe man sshpass).

Nachteil

Bei dieser Methode läuft die PC-Uhr der Weltzeit um 2-3 Sekunden nach.

NTP aktivieren (sofern Internet verfügbar ist)

Wenn das Internet angezeigt wird, aktivieren Sie die native Linux-Zeitsynchronisierung (auf SystemD-basierten Systemen):

timedatectl set-ntp true

Sehen Sie sich das Ergebnis der Zeitsynchronisierung an:

timedatectl

Überprüfung der Abweichung der PC-Zeit von der Weltzeit

Website zum Überprüfen der PC-Uhr:https://time.is.



Verwandte Veröffentlichungen