scponly와 같은 제한된 셸에 하나의 공개 키만 연결하는 방법은 무엇입니까?

scponly와 같은 제한된 셸에 하나의 공개 키만 연결하는 방법은 무엇입니까?

예를 들어, 비밀번호가 없는 키를 사용하여 일관된 동기화를 수행하는 동시에 비밀번호로 보호된 키를 사용하여 서버에 SSH로만 연결할 수 있기를 원합니다. 이를 수행하는 일반적인 방법 scponly은 내 서버 계정의 로그인 셸을 변경하는 것이지만 이는 너무 전역적입니다. 한 번의 항목으로 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 

관련 정보