Я хотел бы знать, как сделать имя удаленного пользователя доступным в сеансе ssh на моем сервере. Так когда joe@host1
входит как commonuser@server1
, скрипты, работающие на server1
работает как commonuser
будет знать, что человек, управляющий ими, на самом деле joe
.
Я попытался SendEnv
/ AcceptEnv
без удачи. Я даже посмотрел на вывод отладки SSH, и это выглядело так, как будто переменная среды была отправлена, но когда я
echo $REMOTE_USER
Я вижу пустую строку.
Я бы тоже хотел, чтобы это работало, даже если 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
).