docker 配置一个支持sshd的debian

参考 docker中制作alpine+sshd的基础镜像

# 选择基础系统镜像

还是考虑用debian系列,docker pull debian:bullseye-slim

docker run -itd --name debian-for-sshd -p 59010:2222 -p 59011:22  --privileged=true  debian:bullseye-slim /bin/bash
docker exec -it debian-for-sshd  /bin/bash

# 安装sshd

# 国内源/更新/安装sshd nano tzdata

sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
apt update
apt install openssh-server nano tzdata
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 配置登录信息

1
2
3
4
5
6
7
sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config && \
ssh-keygen -t dsa -P "" -f /etc/ssh/ssh_host_dsa_key && \
ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key && \
ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key && \
ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key

echo "root:root" | chpasswd 

# 打开sftp

https://dev.leiyanhui.com/pve/open-sftp/

# 修改端口 为2222

1
2
nano /etc/ssh/sshd_config
/etc/init.d/ssh restart

# 测试登录

1
ssh root@10.0.0.9 -p 59010

# 配置脚本自动启动

1
2
echo "/etc/init.d/ssh start" > /autoboot.sh
echo "tail -f /dev/null" >> /autoboot.sh

最后这行是防止退出的

# 清理

apt clean
apt autoclean

# 备份容器

在宿主机运行

1
2
3
4
5
6
7
8
docker stop debian-for-sshd
docker export debian-for-sshd > debian11-for-sshd.tar
# 打包压缩
gzip debian11-for-sshd.tar
#备份
cp debian11-for-sshd.tar.gz /mnt/smb/docker
# 删除旧的容器
docker rm debian-for-sshd

# 创建新容器

1
2
3
4
5
cat debian11-for-sshd.tar.gz | docker import - debian11:sshd-autoboot.sh2222

docker run -itd --name debian-go-codeserver-git  --privileged=true  \
-p 59010:2222 -p 59011-59019:59011-59019 \
debian11:sshd-autoboot.sh2222 sh /autoboot.sh

可以直接用我放在阿里云上的

1
2
3
docker run -itd --name debian-go-codeserver-git  --privileged=true  \
-p 59010:2222 -p 59011-59019:59011-59019 \
registry.cn-qingdao.aliyuncs.com/joyanhui/base-sh-debian:debian11-sshd-autoboot.sh2222 sh /autoboot.sh

# 搞其他的

ssh 连接上随便玩起来,如果要添加跟随容器启动的程序 就编辑 /autoboot.sh

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计