Я не могу дать вам ни одной команды, но есть несколько команд, которые позволят вам найти клиента. Проблема в том, как OpenSSH создает процессы. Процесс, владеющий прослушивающим сокетом 39963
, является дочерним по отношению к процессу, владеющему SSH-соединением. Таким образом, у них будут разные PID. В вашем примере вам нужно найти родительский процесс для 1074
. Следующее работает для сервера OpenSSH в Ubuntu. Я не могу гарантировать, что каждый дистрибутив будет вести себя одинаково.
Начните с поиска PID для клиентского соединения. Используйте grep
для фильтрации вывода netstat
.
$ sudo netstat -ptln | grep 39963
tcp 0 0 127.0.0.1:39963 0.0.0.0:* LISTEN 21921/sshd: philip@
tcp6 0 0 ::1:39963 :::* LISTEN 21921/sshd: philip@
Процесс прослушивания здесь 21921
. Вам нужен его родитель:
$ ps -ef | grep 21921
philip 21921 21919 0 11:01 ? 00:00:00 sshd: philip@pts/1
philip 21924 21921 0 11:01 pts/1 00:00:00 -bash
philip 22844 20309 0 11:15 pts/0 00:00:00 grep --color=auto 21921
# Or try this:
$ ps -ef | awk '$2 == 21921 { print $3 }'
21919
Родителем 21921
здесь является 21919
. Теперь вернемся к netstat, чтобы найти клиента :
$ sudo netstat -ptn | grep 21919
tcp 0 0 192.168.1.36:22 192.168.1.10:54425 ESTABLISHED 21919/sshd: philip
Это показывает, что удаленный IP-адрес192.168.1.10