V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jianqiaoshen
V2EX  ›  问与答

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

  •  
  •   jianqiaoshen · 119 天前 · 1459 次点击
    这是一个创建于 119 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    别整活了,有个 audit ,可以记录大部分(任何事情没绝对)操作日志
    按照最佳实践,Linux 的安全生态很完善,不需要上旁门左道
    phrack
        10
    phrack  
       118 天前
    堡垒机
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   928 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:26 · PVG 03:26 · LAX 12:26 · JFK 15:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.