Как получить полное имя пользователя, используемое для установки ssh-соединения?

xdotool getactivewindow key ctrl+c
xdotool getactivewindow key ctrl+v
0
16.03.2021, 07:00
2 ответа

Если вы запустите ssh testuser:20@<ip>, то программа «ssh» --, которая, как я предполагаю, является версией OpenSSH --, передаст «testuser :20» на удаленный SSH. server в качестве логина для подключения.

Сервер SSH может интерпретировать имя входа по своему усмотрению. Сервер OpenSSH регистрирует полное имя входа, полученное от клиента, а затем отбрасывает двоеточие и любой текст, следующий за ним, из имени входа:

if ((r = sshpkt_get_cstring(ssh, &user, NULL)) != 0 ||
    (r = sshpkt_get_cstring(ssh, &service, NULL)) != 0 ||
    (r = sshpkt_get_cstring(ssh, &method, NULL)) != 0)
    goto out;
debug("userauth-request for user %s service %s method %s", user, service, method);
debug("attempt %d failures %d", authctxt->attempt, authctxt->failures);

if ((style = strchr(user, ':')) != NULL)   <-- Check for a colon
    *style++ = 0;                          <-- Discard it

Таким образом, имя, содержащее двоеточие и следующий за ним текст, недоступно в течение оставшейся части сеанса.

Похоже, что единственный способ изменить это поведение с сервером OpenSSH — это изменить исходный код программы сервера ssh и использовать измененную версию. OpenSSH является открытым исходным кодом , так что это вариант, если функция достаточно важна для вас.

В качестве альтернативы вы можете просмотреть альтернативные серверы ssh, --большинство или все из которых будут коммерческими продуктами --, чтобы узнать, предлагает ли один из них эту функцию.

0
18.03.2021, 22:24

Такое имя пользователя обычно не поддерживается в обычных дистрибутивах Linux, см.https://unix.stackexchange.com/a/157431/330987

0
18.03.2021, 22:24

Теги

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