it-swarm.com.de

Wie finde ich die Version eines Ubuntu-Rechners aus der Ferne?

Ich habe mehr als 60 bis 80 Systeme mit Ubuntu. Einige von ihnen sind mit der Version 8.04 und einige mit der neuesten Version 10.10. Jetzt werden alle älteren Ubuntu-Versionen auf eine neuere Version aktualisiert. Es ist schwierig, jedes Ubuntu-System einzuschalten, sich Notizen über ältere Ubuntu-Versionen zu machen und dann ein Upgrade durchzuführen. Ich habe von all diesen Rechnern IP-Adressen in einer Textdatei. Ich suche also ein einfaches Bash-Skript, das die Aufgabe automatisiert. Ich erwarte, dass die Ausgabe so aussehen würde:

172.29.34.40 ubuntu 10.04
172.29.34.41 ubuntu 8.04
172.29.34.42 ubuntu 8.10

und so weiter .. Kann mir jemand helfen?

20
karthick87

Sie können die Ubuntu-Version mit herunterladen

$ lsb_release -s -d
Ubuntu 10.04.1 LTS

Wenn Sie dies automatisieren möchten, schreiben Sie ein Bash-Skript, das die Liste der Hosts von stdin liest und den Befehl über SSH ausführt. So etwas wie

#!/bin/bash
while read Host; do
   echo -n "$Host: "
   ssh "$Host" lsb_release -s -d < /dev/null
done

Wenn Sie auf allen Computern, zu denen Sie eine Verbindung herstellen möchten, ein gemeinsames Benutzerkonto haben, sollten Sie nach diesem Konto suchen

#!/bin/bash
RUSER="username"
while read Host; do
   echo -n "$Host: "
   ssh "[email protected]$Host" lsb_release -s -d < /dev/null
done

Speichern Sie es unter dem Namen versions.sh. Denken Sie daran, es ausführbar zu machen (chmod a+x versions.sh), und führen Sie es aus

$ versions.sh < ips.txt
31
Adam Byrtek

Angenommen, sie betreiben SSH-Server, könnten Sie versuchen, Ubuntu-Versionen basierend auf der Paketversion von SSH zu erraten:

$ nc IP.IP.IP.IP 22
SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5
Ctrl-C

Aktuelle Versionen von openssh finden Sie im Launchpad https://launchpad.net/distros/ubuntu/+source/openssh :

openssh | 1:4.2p1-7ubuntu3.5 | dapper-updates/main
openssh | 1:4.7p1-8ubuntu3   | hardy-updates/main
openssh | 1:5.1p1-6ubuntu2   | karmic/main
openssh | 1:5.3p1-3ubuntu6   | lucid-updates/main
openssh | 1:5.5p1-4ubuntu5   | maverick-updates/main
openssh | 1:5.8p1-1ubuntu2   | natty/main

In meinem obigen Beispiel scheint 5.5p1 mit einer Debian-Version von -4ubuntu5 ein Ubuntu 10.10 Maverick-System zu sein.

Einige Server haben möglicherweise "DebianBanner no" in ihrer /etc/ssh/sshd_config -Datei, aber die Upstream-Version von OpenSSH ist immer noch sichtbar, was ausreicht, um das System immer noch zu identifizieren (jede Veröffentlichung von Ubuntu hat bisher eine andere Upstream-Version von OpenSSH).

3
Kees Cook