如何仅将一个公钥与像 scponly 这样的受限 shell 相关联?

Tob*_*ler 3 ssh account-restrictions authorization

我想使用无密码密钥来执行例如统一同步,同时只能使用受密码保护的密钥通过 SSH 连接到服务器。通常的使用方法scponly是更改我的服务器帐户的登录外壳,但这太全局化了。一个条目可以authorized_keys实现这一点吗?

And*_*kov 5

您可以command在authorized_keys 中使用关键字将执行限制为特定密钥的单个命令,如下所示:

command="/usr/local/bin/mysync" ...sync public key... 
Run Code Online (Sandbox Code Playgroud)

更新:如果您指定一个简单的脚本作为命令,您可以验证最初提供的命令用户:

#!/bin/sh 

case "$SSH_ORIGINAL_COMMAND" in 
/path/to/unison *) 
$SSH_ORIGINAL_COMMAND 
;; 
*) 
echo "Rejected" 
;; 
esac 
Run Code Online (Sandbox Code Playgroud)