如何将~/.ssh/authorized_keys 中的 comment 字段在用户登录时保存为环境变量

119 天前
 jianqiaoshen

公司想做个监控用户命令的日志,记录谁通过哪个 ssh key 登录了,运行了哪些命令。

登录会话里有 SSH_CONNECTION ,SSH_CLIENT 但是它们只记录 ip 和端口号,不够直观。

本来想的是用修改 authorized_keys 的方式:environment="SSH_USER=user1" ssh-ed25519 XXXX user1 。但是领导又觉得如果有人自己再加一条不带设置环境变量的 key 就能绕过监控。

有没有什么办法不修改 authorized_keys 的同时又能记录是哪个用户运行的命令。

1459 次点击
所在节点    问与答
10 条回复
julyclyde
119 天前
首先,并没有这个功能
其次,多个人共用账户这种做法是错误的。正确的做法是各用各的身份验证,然后用 sudo 来控制权限
jworg
119 天前
这个有个东西叫 pam ,你去修改 pam 的行为就可以了,应该是在 pam_ssh 里面,大概做法是读一下那个文件,找匹配的设置环境变量。具体怎么设置环境变量可以参照 pam_env 这个模块的代码。

ps. 好久没看到这么原始的 linux 上面的问题
jianqiaoshen
119 天前
放弃了,还是记录 SSH_CONNECTION ,分析的时候再结合/var/log/auth.log 了
goodryb
119 天前
这种正常不应该是上堡垒机吗
wineejam
119 天前
堡垒机正解
julyclyde
119 天前
@jworg pam_ssh 有这么个用法么?
虽然 pam session module 可以用来设置环境变量,但是好像并没有某个 pam module type 可以获得“这个用户到底是用哪个 authorize_keys 认证过来的”信息吧?
jworg
119 天前
@julyclyde 确实你说的是对的,翻了下 openssh 的代码,我记错了,读 authorize_keys 在 openssh 那边,如果 pam_ssh 想接管这个得改好多东西。
ETiV
119 天前
把日志记在本地,防君子不防小人嘛这是🤣

就应该用堡垒机,日志记录在外部,才能可靠的审计
fuzzsh
119 天前

别整活了,有个 audit ,可以记录大部分(任何事情没绝对)操作日志
按照最佳实践,Linux 的安全生态很完善,不需要上旁门左道
phrack
119 天前
堡垒机

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1133852

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX