Я хочу регистрировать передачу файлов 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
.