Ограничить SSH-ключ для выполнения только rsync

Я работаю над стратегией резервного копирования для своих серверов с помощью rsync. Я выполнил этот учебник и, чтобы ограничить использование ключа SSH, я сделал из этого validate-rsync.sh скрипта, который я также могу запустить без проблем:

#!/bin/sh

case "$SSH_ORIGINAL_COMMAND" in 
*\&*) 
echo "Rejected" 
;; 
*\(*) 
echo "Rejected" 
;; 
*\{*) 
echo "Rejected" 
;; 
*\;*) 
echo "Rejected" 
;; 
*\<*) 
echo "Rejected" 
;; 
*\>*) 
echo "Rejected" 
;; 
*\`*) 
echo "Rejected" 
;; 
*\|*) 
echo "Rejected" 
;; 
rsync\ --server*) 
$SSH_ORIGINAL_COMMAND 
;; 
*) 
echo "Rejected" 
;; 
esac 

Начало файл authorized_keys выглядит так:

command="/home/$USERNAME/validate-rsync.sh" ssh-rsa....

Насколько я понимаю, у меня не должно быть возможности удаленно подключаться через SSH (с сервера, на котором находится резервная копия), а затем, например, выполнить mkdir xx . Но каким-то образом я все еще могу это сделать. В чем может быть проблема?

Благодарю за любую помощь.

2
задан 6 March 2017 в 20:41
2 ответа

Я сам догадался. Я установил команду перед неправильным ключом SSH... Простите за беспокойство.

1
ответ дан 3 December 2019 в 12:36

Вы можете принудительно использовать rsync, отредактировав открытый ключ в файле authorized_keys на сервере, например:

command="/usr/bin/rsync -wo /path/to/data",no-port-forwarding ssh-rsa ....
1
ответ дан 24 March 2021 в 09:32

Теги

Похожие вопросы