我想知道如何在我的服务器上的 ssh 会话中提供远程用户名。这样,当以joe@host1
身份登录时,以身份运行的commonuser@server1
脚本就会知道运行它们的人实际上是。server1
commonuser
joe
我试过了
SendEnv
,但AcceptEnv
没有成功。我甚至查看了 SSH 调试输出,看起来环境变量已经发送,但当我这样做时echo $REMOTE_USER
我看到的是空字符串。
我还希望这个能够发挥作用,即使
joe
不太合作,例如当他拒绝设置变量时REMOTE_USER
。
答案1
如果您想将多个远程人员连接到同一个本地用户帐户,您应该使用 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
)。