Finden derzeit angeschlossen port-Nummer SSH
ich bin erstellen einer lokalen simulator (nicht mit dem internet verbunden) mit Hilfe der SSH-Verbindung. Ich habe angefangen, sshd auf einen bestimmten Bereich von port-Nummern und Ursprung eine Vielzahl von Geräten. Ich finde den aktuell verbundenen Portnummer.
OS CentOS 5.5
OpenSSH 6.1
Habe ich Folgendes getan. Es funktioniert für den normalen Gebrauch (Bedienungsanleitung).Aber wenn Sie versuchen, eine strenge Prüfung(automatisiert) es scheint, wie es nicht manchmal zu finden, die port-Nummer.
#!/bin/bash
WHOINFO=`who -m`
USERNAME=`echo $WHOINFO | awk 'NR==1{print $1}'`
PTSNUMBER=`echo $WHOINFO | awk 'NR==1{print $2}'`
USERSTR=$USERNAME"@"$PTSNUMBER
PID=`ps -eLf | grep $USERSTR | awk 'NR==1{print $3}'`
if [ -z "$PID" ];
then
exit
fi
PORTSTR=`netstat -natp | grep $PID | awk 'NR==1{print $4}'`
PORTNUMBER=${PORTSTR//*:/}
echo $PORTNUMBER
dein grep Muster für die PID sollte
$PID/
, wie es präsentiert wird in dieser form in der Ausgabe, sonst können Sie falsch match-ports, nummeriert sind die gleichen wie die PID
Sie versuchen zu entsprechen.InformationsquelleAutor Antarus | 2013-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen OpenSSH-server setzt die variable
$SSH_CLIENT
, enthält die aktuelle ip, client port und server port getrennt durch Leerzeichen:Zu Holen Sie sich die port-Nummer der aktuellen Sitzung verbunden ist, daher können Sie
echo ${SSH_CLIENT##* }
./proc/<pid>/environ
Datei von Rohrleitungen durchtr '\0' '\n'
anderen Kerl Brilliant! mein ganzes script jetzt wurde reduziert, um eine echo-Befehl. Ich konnte nicht finden, dass diese variable. Thnx.
InformationsquelleAutor that other guy