Как использовать lsof с SSH ControlPath?

Я широко использую SSH ControlPath и хотел бы использовать инструмент lsof, чтобы проверить, какой процесс поддерживает и работает сокет ControlPath. Я использую OpenSSH_7.2p2 Ubuntu-4ubuntu1, OpenSSL 1.0.2g-fips 1 Mar 2016, который поставляется с Ubuntu 16.04. Мои параметры SSH (в ~ / .ssh / config) выглядят так:

Host *
...
  ControlMaster auto
  ControlPath /tmp/sshcontrol-%C
  ControlPersist yes
...

И вот что я получаю при первом подключении к хосту:

srw------- 1 enzo enzo  0 2016-06-15 11:35:15 sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac

Но если я пытаюсь получить подробную информацию о процессе, используя этот сокет с lsof, я получаю эти « странные » результаты.

    $ lsof /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac
    lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
          Output information may be incomplete.
    $ sudo lsof /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac
    $ lsof | grep sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac
    lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
          Output information may be incomplete.
    ssh       2044            enzo    4u     unix 0x0000000000000000       0t0      42942 /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac.tBKTDPNcaBZjlV2T type=STREAM
    ssh       2044            enzo    5u     unix 0x0000000000000000       0t0      55186 /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac.tBKTDPNcaBZjlV2T type=STREAM
    $ lsof /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac.tBKTDPNcaBZjlV2T
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
      Output information may be incomplete.
lsof: status error on /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac.tBKTDPNcaBZjlV2T: No such file or directory
lsof 4.89
 latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
 latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
 latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
 usage: [-?abhKlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-E] [+|-e s] [+|-f[gG]]
 [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
 [+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Use the ``-h'' option to get more help information.

То есть фактическое имя файла , связанное с этим сокетом, не совпадает с « оно должно быть »: lsof сообщает о дополнительном расширении имени файла. Другой инструмент для сокетов ss дает аналогичные результаты.

1120 Последнее странное поведение. Я вижу, что у меня есть сокет в /tmp для использования в kdewallet. Это называется (в моем случае) kwallet5_enzo.socket. Если я использую lsof поверх него, вот что я получаю:

$ lsof /tmp/kwallet5_enzo.socket
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
      Output information may be incomplete.
COMMAND     PID USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME
kwalletd5  1689 enzo    2u  unix 0x0000000000000000      0t0   27355 /tmp/kwallet5_enzo.socket type=STREAM
startkde   1690 enzo   19u  unix 0x0000000000000000      0t0   27802 /tmp/kwallet5_enzo.socket type=STREAM
dbus-laun  1742 enzo   19u  unix 0x0000000000000000      0t0   27802 /tmp/kwallet5_enzo.socket type=STREAM
dbus-daem  1743 enzo   19u  unix 0x0000000000000000      0t0   27802 /tmp/kwallet5_enzo.socket type=STREAM
start_kde  1800 enzo   19u  unix 0x0000000000000000      0t0   27802 /tmp/kwallet5_enzo.socket type=STREAM
kwrapper5  1843 enzo   19u  unix 0x0000000000000000      0t0   27802 /tmp/kwallet5_enzo.socket type=STREAM
ssh        3023 enzo    5u  unix 0x0000000000000000      0t0  104592 /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac.sGsWVH3Aqg03Hc7D type=STREAM
ssh        8862 enzo    5u  unix 0x0000000000000000      0t0 1131569 /tmp/sshcontrol-485e2aeac2a50cd6880fd929681d0e3a55817f06.deg4pBWKy2nusvrK type=STREAM
ssh       31767 enzo    5u  unix 0x0000000000000000      0t0 1006327 /tmp/sshcontrol-f1b458a85cd2aa9d5c115abc12afee9f485ad6b0.g2QSMGUDOG1LY8bZ

Я (правильно) вижу ряд процессов, обращающихся к этому сокету. Но я также вижу три нежелательных сокета, связанных с функцией ControlPath SSH! Я начинаю думать больше об ошибках и меньше о своем собственном невежестве.

Как я могу надежно проверить, какой процесс использует этот файл сокета?

0
задан 16 June 2016 в 23:07

0 ответов

Другие вопросы по тегам:

Похожие вопросы: