Назад | Перейти на главную страницу

Ведение журнала передачи файлов SFTP в контейнере Docker

Я хочу регистрировать передачу файлов SFTP. Мой sshd_conf является:

Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

PermitRootLogin yes

AuthorizedKeysFile      .ssh/authorized_keys

PasswordAuthentication yes

UsePAM yes

AllowTcpForwarding no
X11Forwarding no
UseDNS no

Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f AUTH

Ключи хоста генерируются следующим образом:

$ ssh-keygen -N "" -t rsa -f ssh_host_rsa_key
$ ssh-keygen -N "" -t ed25519 -f ssh_host_ed25519_key

Сервер SFTP работает в контейнере Docker, созданном этим Dockerfile:

FROM centos:7

RUN yum install -y openssh-server

RUN echo 'root:123456' | chpasswd

COPY ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key
COPY ssh_host_ed25519_key /etc/ssh/ssh_host_ed25519_key
COPY sshd_config /etc/ssh/sshd_config

RUN chmod 400 /etc/ssh/*

EXPOSE 22

CMD ["/usr/sbin/sshd", "-D", "-e"]

И единственный вывод, который у меня есть после успешного входа в систему и загрузки файла:

$ docker run --rm --name sftp-server -p "2222:22" test/sftp
Server listening on 0.0.0.0 port 22.
Server listening on :: port 22.
Accepted keyboard-interactive/pam for root from 172.17.0.1 port 58556 ssh2

Однако я бы ожидал вывода, как описано в OpenSSH вики:

Oct 22 11:59:50 server internal-sftp[4929]: open "/home/fred/foo" flags WRITE,CREATE,TRUNCATE mode 0664
Oct 22 11:59:50 server internal-sftp[4929]: close "/home/fred/foo" bytes read 0 written 928

В чем может быть проблема с моей настройкой?

Вы настроили sftp-server для входа в системный журнал, а не в stderr. Вам нужно сорвать -l/-f варианты и замените их на -e.