我想获取实际登录的用户的公钥指纹,以识别哪个用户以 root 身份登录,因此我可以为子文件夹中的每个用户创建一个 bashrc,例如“/root/[FINGERPRINT]/.bashrc”。我怎样才能做到这一点?我们不想使用 sudo!!!!
当我将 sshd 的 LogLevel 切换为 VERBOSE 时,我可以在 auth.log/sercure 中看到指纹,但我想这不会有帮助。
我们使用的是 CentOS 6/7/8
答案1
按要求回答问题(其他人已经评论过这是否可取)。
将 ~root/.ssh/authorized_keys 更改为在environment="RUSER=Chris"
Chris 的密钥之前、environment="RUSER=Pete"
Pete 的密钥之前等等。线条应该看起来像
environment="RUSER=Pete" ssh-rsa AAAAB[snipped] pete@somewhere
编辑 sshd 配置文件(通常是 /etc/ssh/sshd_config)以包含一行
PermitUserEnvironment yes
启用环境处理。获取sshd
重新读取配置文件(我曾经ps -ef | grep sshd\ -D
找到PID,然后用于kill -HUP PID
让守护进程重新读取文件。
此时,当你通过 ssh 登录时,会有一个环境变量RUSER
,可以用来判断使用哪个密钥登录。
由于现在可以设置环境变量,因此应对 shell 启动文件进行仔细审核,以确保环境变量中的意外值不会触发任何不良影响。
该信息位于SSHD(8)手册页中的 AUTHORIZED_KEYS 文件格式部分。