Alpine Linux SSH服务以及Docker化

在Alpine Linux安装部署SSH服务非常简便,而且容器化SSH服务也非常容易。

  • 在Alpine Linux服务器上,安装 openssh

    sudo apk add openssh
    
  • 激活 sshd 服务:

    sudo rc-update add sshd
    
  • 启动 sshd 服务:

    sudo service sshd start
    
  • 可以通过定制 /etc/ssh/sshd_config 实现安全加固

Alpine Linux环境OpenSSH服务容器化

从Dockerfile构建Docker镜像 可以方便我们构建运行SSH服务的Alpine Linux容器,在该文中我整理了不同发行版的构建SSH服务方法,其中 Alpine Linux 非常简单(设置密码登陆方式)

  • ssh容器 Dockerfile :

../../docker/admin/dockerfile/alpine-ssh
FROM alpine:latest
RUN apk add --update --no-cache openssh sudo
RUN apk update && apk upgrade
RUN echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
RUN adduser -u 502 -G wheel -h /home/huatai -s /bin/sh -D huatai
RUN echo -n 'huatai:some_password_here' | chpasswd
RUN echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 22
COPY entrypoint.sh /
  • 并准备 entrypoint.sh :

../../docker/admin/dockerfile/entrypoint.sh
#!/bin/sh
ssh-keygen -A
exec /usr/sbin/sshd -D -e "$@"
  • 然后执行构建镜像命令:

    chmod +x -v entrypoint.sh
    docker build -t alpine-ssh .
    
  • 使用以下命令启动容器:

    docker run -itd --hostname x-dev --name x-dev -p 122:22 alpine-ssh:latest
    

参考