Получить фактическое имя пользователя SSH-клиента, установившего SSH-сессию с удаленным сервером

Допустим, у нас есть учетная запись пользователя под именем john на сервере CentOS (192.168.1.1), а на другой стороне есть пользователь, который владеет этой учетной записью и время от времени использует свою учетную запись из разных мест (ноутбуков) для SSH.

[jsmith@mac ~]# ssh john@192.168.1.1

[johnsmith@ubuntu ~]# ssh john@192.168.1.1

Теперь вопрос:

На стороне сервера, есть ли способ узнать фактический идентификатор локального пользователя, который запустил SSH клиент, чтобы инициировать SSH соединение, что означает jsmith для времени, когда пользователь использовал свою машину Mac и johnsmith для времени, когда пользователь использовал свою машину Ubuntu.

Примечания и косидерации:

  • У меня есть root-доступ к серверной стороне. Я могу установить и настроить любую службу, если это необходимо.
  • У меня нет доступа к машине клиента, и я не могу попросить его использовать определенный SSH-клиент или внести какие-либо изменения в его машину.
  • Вот сообщение о шкафе, которое я смог найти. Использую ident (xinetd), но ответ не ясен.

Получить имя пользователя, который инициировал SSH соединение?

Спасибо,

1
задан 25 April 2021 в 19:08
1 ответ

Нет, не это надежно с точки зрения сервера. Насколько известно серверу, единственная информация, идентифицирующая пользователя, - это его логин.

Пользователь может решить отправить информацию о своей учетной записи удаленного пользователя. Например, если они вошли в систему с открытым ключом, поле комментария в ключе может идентифицировать их. Но не надежно - нет никаких ограничений на содержание этого поля. Я предполагаю, что они также могут послать удаленному пользователю USER, HOME или другие переменные окружения, которые могут идентифицировать их удаленную учетную запись, но это не то, что сервер может обеспечить.

0
ответ дан 7 May 2021 в 19:22

Теги

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