Trouver actuellement connecté numéro de port SSH
je suis de la création d'un local simulateur (non connecté à internet) à l'aide de la connexion SSH. J'ai commencé sshd sur une plage de numéros de port et Nat une gamme d'appareils de celles-ci. Je dois trouver le actuellement connecté numéro de port.
CentOS 5.5
OpenSSH 6.1
J'ai effectué les opérations suivantes. Il travaille pour une utilisation normale (manuel utilisateur).Mais lorsque j'essaie un de rigoureux tests automatisés () il me semble que c'est à défaut parfois de trouver le numéro de port.
#!/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
- votre grep motif pour PID doit être
$PID/
, comme il est présenté sous cette forme dans la sortie; sinon, vous pouvez mal de match de ports sont numérotés de la même que laPID
vous essayez de faire correspondre.
Vous devez vous connecter pour publier un commentaire.
Un serveur OpenSSH va définir la variable
$SSH_CLIENT
, qui contient la propriété intellectuelle, le client port et le port du serveur séparés par des espaces:Pour obtenir le numéro de port de la session actuelle est connecté, vous pouvez donc utiliser
echo ${SSH_CLIENT##* }
./proc/<pid>/environ
fichier par tuyauterie à traverstr '\0' '\n'