**已关闭。**此问题为not about programming or software development。目前不接受回答。
此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
16天前关闭
社区在16天前审查了是否重新打开这个问题,并将其关闭:
原始关闭原因未解决
Improve this question的
如何使用openssh-server在Docker容器中启用ssh连接日志(/var/log/auth.log)?
我的容器中不存在/var/log/auth. log。
- Docker版本:9.0
- 主机:Ubuntu 13.10
- 容器:Ubuntu 13.10
3条答案
按热度按时间a1o7rhls1#
auth日志由Syslog服务管理。该服务本身传统上由init系统(在您的情况下为Upstart)管理(启动)。默认情况下,容器不会运行init系统,这意味着您必须手动启动
rsyslog
:字符串
之后,您将在/var/log中找到常用的日志文件。
注意:init系统与Docker容器并不完全兼容。通常的做法是使用Supervisord自动启动多个服务/进程。
ipakzgxi2#
在docker容器中安装
rsyslog
包:字符串
然后启动daemon:
型
似乎可以忽略下面这样的消息,
sshd
无论如何都会记录到/var/log/auth.log
。型
50pmv0ei3#
我解决了这个问题。始终保持在同一个目录中。我这样做了:
Dockerfile:
字符串
重要的日志是行:
运行mkdir -p /etc/ssh/logs && chown root:root /etc/ssh/logs && chmod 700 /etc/ssh/logs
Run sed -i '1i LogLevel INFO' /etc/SSH/sshd_config
“-E”,“/etc/ssh/logs/auth.log”
我用puttygen创建ssh密钥,并将文件id_rsa.pub复制到存放Dockerfile和docker-compose.yml的目录中
创建图像:
型
docker-compose.yml:
型
启动docker compose:
型
现在你可以在./logs/auth.log中检查你的日志。这对Fail 2Ban非常有用:
型
我构建了这个ssh容器,通过ssh访问我的数据库。我认为这是一个很好的安全解决方案。当你有更好的想法时,请告诉我:)