如何在RemoteCommand中设置SSH_AUTH_SOCK的ACL权限?

如何在RemoteCommand中设置SSH_AUTH_SOCK的ACL权限?

我正在尝试转发我的 SSH 代理,然后向 SSH_AUTH 套接字授予权限。这些权限适用于远程主机上的另一个用户。我的 ssh 配置:

Host myhost
    Hostname 1.1.1.1
    ForwardAgent yes
    User foo
    IdentityFile "~/.ssh/foo"
    RequestTTY yes
    RemoteCommand setfacl -m bar:x "'$(dirname ${SSH_AUTH_SOCK})'"; setfacl -m bar:rwx "'$SSH_AUTH_SOCK'"; bash -l

该变量SSH_AUTH_SOCK在远程主机上正确扩展,但是我收到如下错误:

setfacl: '/tmp/ssh-tsmWmrhbEu': No such file or directory

如果我在远程主机上的脚本中运行它并在RemoteCommand.

#!/bin/bash

# Ensure SSH_AUTH_SOCK is set
if [ -z "$SSH_AUTH_SOCK" ]; then
    echo "SSH_AUTH_SOCK is not set. Exiting."
    exit 1
fi

# Set permissions for the specified user
setfacl -m bar:x "$(dirname "$SSH_AUTH_SOCK")"
setfacl -m bar:rwx "$SSH_AUTH_SOCK"

相关内容