Я хочу безопасно делать резервные копии из Webmin, первоначально резервные копии конфигурации, на удаленный сервер. Я новичок в Webmin и в спешке. Похоже, это проблема конфигурации с Webmin, rush или sshd.
Мой сервер хранения резервных копий 10.20.0.130 (Ubuntu 20.04) имеет учетную запись ftpsecure с оболочкой /usr/sbin/rush.
/etc/rush.rc выглядит следующим образом:
acct on
limits t10r20
umask 002
env - USER LOGNAME HOME PATH
fall-through
rule pwd
command ^pwd
set[0] /bin/pwd
rule scp-to
command ^scp (-v )?(-r )?-t( --)? /srv/vmceml_backups/?
set[0] /usr/bin/scp
chroot /srv/rush
chdir /srv/vmceml_backups
С моего сервера webmin 10.20.0.129 (Webmin 2.013 в Ubuntu 18.04) я могу успешно запустить:
sudo -u ftpsecure scp -v testfile ftpsecure@10.20.0.130:/srv/vmceml_backups/testfile
Пароль не запрашивается, что доказывает, что настройка открытого/закрытого ключа верна и работает, а также подробный журнал от scp подтверждает это.
В разделе Webmin, «Файлы конфигурации резервного копирования», «Резервное копирование по расписанию» у меня есть запись: Место назначения резервного копирования: сервер SSH 10.20.0.130; файл на сервере: /srv/vmceml_backups/webmin-vmceml-backups-%Y%m%d.tgz; Войдите как пользователь ftpsecure; Порт сервера по умолчанию; Включает: файлы конфигурации модуля Webmin, файлы конфигурации сервера.
Когда я нажимаю «Сохранить и создавать резервные копии сейчас», я получаю: Запуск резервного копирования 45 модулей в /srv/vmceml_backups/webmin-vmceml-backups-20230307.tgz на 10.20.0.130 через SSH.. Ошибка scp: ftpsecure@10.20.0.130: разрешение отказано (публичный ключ).
На сервере хранения резервных копий в /etc/ssh/sshd_config у меня есть:
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
LogLevel DEBUG
PermitRootLogin prohibit-password
StrictModes yes
AuthorizedKeysFile .ssh/authorized_keys
HostbasedAuthentication no
IgnoreRhosts yes
PasswordAuthentication no
PermitEmptyPasswords no
PubkeyAuthentication yes
TCPKeepAlive yes
Match User ftpsecure
PasswordAuthentication no
ForceCommand internal-sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Match all
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
Примечание: наличие/отсутствие ForceCommand в разделе Match User ftpsecure или наличие/отсутствие всего раздела Match User ftpsecure не имеет значения.
Я не менял стандартные файлы конфигурации для PAM.
Ограниченный запуск оболочки на сервере хранилища резервных копий ничего не регистрирует, когда я запускаю резервную копию Webmin, даже для правила по умолчанию. Когда я запускаю scp вручную на сервере webmin, я запускаю журналы сервера хранения резервных копий, как и ожидалось, в соответствии с правилом scp-to (и scp преуспевает, как отмечалось выше).
Я не понимаю журналы SSHD:
KEX done [preauth]
userauth-request for user ftpsecure service ssh-connection method none [preauth]
attempt 0 failures 0 [preauth]
user ftpsecure matched 'User ftpsecure' at line 70
PAM: initializing for "ftpsecure"
PAM: setting PAM_RHOST to "10.20.0.129"
PAM: setting PAM_TTY to "ssh"
Connection closed by authenticating user ftpsecure 10.20.0.129 port 51584 [preauth]
do_cleanup [preauth]
Я не смог выяснить, какая именно команда scp используется Webmin для этих резервных копий, если бы я знал, что могу быть уверен, что мой ручной тест соответствует ей.
Любые предложения приветствуются, пожалуйста!
