
Мне нужно предоставить доступ какому-то мистеру X на моем производственном сервере, чтобы он мог отправлять файлы на мой сервер. Поскольку нет необходимости предоставлять ему доступ к оболочке, я решил использовать ограниченную оболочку (rssh), чтобы он мог только копировать файлы на мой сервер, не имея к нему доступа. Файл будет передан с помощью RSYNC через SSH.
Команда, используемая для передачи файла:
rsync -ua -e 'ssh -p 55' /appdata/paths/ 192.168.4.172:/home/example/
Но rsync через SSH с использованием ограниченной оболочки, похоже, работает некорректно.
$ rsync -ua /appdata/paths/ -e 'ssh -p 565'
[email protected]:/home/example/#################################################################################################################
This service is restricted to authorized users only. All activities on this system
are logged. ##
## Unauthorized access will be fully investigated and reported to the appropriate
law enforcement agencies. ##
#
insecure -e option not allowed.
This account is restricted by rssh.
Allowed commands: scp rsync
If you believe this is in error, please contact your system administrator.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
Работает нормально scp
, проблема rsync
только с
решение1
Вам следует использовать rrsync
(вероятно, он доступен в вашей системе в сжатом виде, например, в /usr/share/doc/rsync/scripts/
) и связать строку в вашем файле authorized_keys с открытым ключом, установленным там для rsync:
command="$HOME/bin/rrsync -ro ~/rsyncdir/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding
При необходимости можно найти более подробную информацию.здесьиздесь