Можете с rsync сервера с конкретным пользователем

у меня есть две машины Linux, и я пытаюсь синхронизировать файл между ними двумя с помощью rsync.

я сгенерировал ключ на клиентской машине, используя:

ssh-keygen -t rsa

и затем скопировал публичный ключ /home/user1/.ssh/authorized_keys и /home/user2/.ssh/authorized_keys файлы.

Я могу rsync файл user1 с помощью следующей команды:

rsync -a /home/user/sendIt.txt user1@some.host:/home/user1/

однако, когда я пытаюсь использовать rsync для синхронизации файл второй пользователь через :

rsync -a /home/user/sendIt.txt user2@some.host:/home/user2/

Я получаю это ошибка:

protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(171) [sender=3.0.6]

почему я могу синхронизировать с одним пользователем, но не с другим? Я должен упомянуть, что второй пользователь предназначен для использования только в качестве пользователя SFTP, и он заключен в свой домашний каталог.

любые мысли о том, как это исправить и избежать его в будущем?
Любая помощь будет оценили, спасибо.

13
задан JakeGould
11.03.2023 20:19 Количество просмотров материала 2639
Распечатать страницу

3 ответа

вы ограничили доступ только для user2 к SFTP. Таким образом rsync Не допускается.

чтобы решить эту проблему, вам придется отменить ограничение SFTP в sshd_config.

вместо этого - только rsync - вы можете написать сценарий, который проверяет, если команда для запуска rsync и set ForceCommand этот скрипт в ваш sshd_config.

см. также это serverfault.com вопрос / ответ.

1
отвечен sborsky 2023-03-13 04:07

как сказал @sborsky, вы не можете rsync потому что конфигурация сервера ограничена SFTP. Однако вы должны иметь возможность использовать sshfs смонтировать удаленный каталог локально и rsync на этот каталог.

0
отвечен eggo 2023-03-13 06:24

проблема решена.

сначала я пробовал ForceCommand подход, но это не работает для меня. То, что я сделал в конечном итоге, - это создать каталог внутри каталога user2, заключенного в тюрьму/привязку. Этот каталог принадлежит user1, и я могу rsync файлы в него.

процесс следующим образом: user2 был заключен в тюрьму / chrooted с помощью

Match Group sftponly
        ChrootDirectory /var/ftp
        ForceCommand internal-sftp
        AllowTcpForwarding no

внутри /etc/ssh/sshd_config.

этот каталог был привязан к его домашнему каталогу использование:

mount --bind /var/ftp /home/user2/ftp

внутри /var/ftp/ Я:

mkdir tempDir
chown -R user1:user1 tempDir

как только файлы синхронизируются с этим каталогом, они автоматически появляются в каталоге user2 jail, и он может их читать.

0
отвечен Dany Lavrov 2023-03-13 08:41

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх