我想使用无密码密钥来执行例如一致同步,同时只能使用受密码保护的密钥通过 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