scponlyのような制限されたシェルに1つの公開鍵だけを接続する方法は?

scponlyのような制限されたシェルに1つの公開鍵だけを接続する方法は?

たとえば、パスワードのないキーを使用して一貫した同期を実行し、パスワードで保護されたキーを使用してサーバーにSSHのみで接続できるようにしたいとします。これを行う一般的な方法scponlyは、私のサーバーアカウントのログインシェルを変更することですが、これはグローバルすぎます。 1つの項目でauthorized_keysこれを実行できますか?

答え1

commandAuthorized_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 

関連情報