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

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

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

答案1

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

command="/usr/local/bin/mysync" ...sync public key... 

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

#!/bin/sh 

case "$SSH_ORIGINAL_COMMAND" in 
/path/to/unison *) 
$SSH_ORIGINAL_COMMAND 
;; 
*) 
echo "Rejected" 
;; 
esac 

相关内容