使用docker部署sshd服务器

docker sshd服务器

使用docker运行包含完整sshd服务的Alpine容器,提供ssh、scp、sftp、rsync等服务。

初始化脚本

创建setup-user.sh,设置用户名密码,内容如下:

#!/bin/bash
set -e
# 设置root密码
root_pwd="123456"
echo "root:$root_pwd" | chpasswd

# 设置其他用户
username=user
user_pwd="123456"
echo "$username:$user_pwd" | chpasswd

docker-compose配置

[!NOTE]

SSH_USERS变量中的用户名需要和setup-user.sh中的用户名对应。

version: '3.9'
services:
    panubo:
        image: 'quay.io/panubo/sshd:1.9.0'
        container_name: docker_sshd
        volumes:
            - './entrypoint.d/:/etc/entrypoint.d/'
            - './data:/home'
        environment:
            - SSH_ENABLE_PASSWORD_AUTH=true
            - 'SSH_USERS=user:1000:1000'
            - SSH_ENABLE_ROOT=true
            - SSH_ENABLE_ROOT_PASSWORD_AUTH=true
        ports:
            - '2222:22'

完整目录树如下:

docker-sshd
├─ docker-compose.yml
└─ entrypoint.d
   └─ setup-user.sh

[!TIP]

启动容器后,可以删除文件entrypoint.d/setup-user.sh,降低密码泄露风险。

其他

panubo/sshd也支持公钥免密登录、SFTP Only、SCP Only、Rsync Only等配置,详见github:docker-sshd

posted @ 2024-12-27 11:09  伊丽莎白菜  阅读(182)  评论(0)    收藏  举报