docker 配置一个支持sshd的debian

docker

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

#选择基础系统镜像

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

plaintext
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

plaintext
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

#配置登录信息

plaintext
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

plaintext
nano /etc/ssh/sshd_config
/etc/init.d/ssh restart

#测试登录

plaintext
ssh [email protected] -p 59010

#配置脚本自动启动

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

最后这行是防止退出的

#清理

plaintext
apt clean
apt autoclean

#备份容器

在宿主机运行

plaintext
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

#创建新容器

plaintext
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

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

plaintext
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

评论