Назад | Перейти на главную страницу

Правильно реализовать REMOTE_USER-подобную вещь для ssh

Я хотел бы знать, как сделать имя удаленного пользователя доступным в сеансе ssh на моем сервере. Так когда joe@host1 входит как commonuser@server1, скрипты, работающие на server1 работает как commonuser будет знать, что человек, управляющий ими, на самом деле joe.

  1. Я попытался SendEnv / AcceptEnv без удачи. Я даже посмотрел на вывод отладки SSH, и это выглядело так, как будто переменная среды была отправлена, но когда я

    echo $REMOTE_USER

    Я вижу пустую строку.

  2. Я бы тоже хотел, чтобы это работало, даже если joe менее склонен к сотрудничеству, например, когда он отказывается установить REMOTE_USER переменная.

Если вы хотите подключить нескольких удаленных людей к одной и той же локальной учетной записи пользователя, вам следует использовать ключи SSH, и каждый пользователь должен использовать свой собственный ключ.

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

Если вы установите PermitUserEnvironment=yes в /etc/ssh/sshd_config, вы также можете принудительно указать переменную среды в ~/.ssh/authorized_keys файл так:

cat ~/.ssh/authorized_keys

environment="REMOTE_USER=joe@remote1" ssh-dss AAAAB3Nza......

(Видеть man sshd для получения дополнительной информации о authorized_keys и man sshd_config).