Docker 下 Centos 部署 ssh 实现远程开发


来由

因为会在 Win 与 Mac 之间相互切换,并且喜欢在系统大版本升级后全新安装。实在是不想重复部署开发环境了。前些日子听说 VScode 可以实现远程开发,所以尝试了一下。不过远程开发并不是这篇文章的重点。重点是 Docker 下的 Centos 有一些坑,这里就记录一下过程。

安装环境:

整个Docker环境在群晖下,提前开启Docker的桥接网卡。参照此文章前半部分:【网络教程】群晖中如何安装甜糖

安装

此次安装的镜像是centos7.9.2009,需要提前下载。

登录群晖后台:
sudo -i 回车后输入密码,同群晖后台地址。
docker run -itd \
--name Centos7 \
--hostname Centos7 \
--network bridge-host \
--ip=192.168.10.30 \
--privileged=true \
--restart=always \
centos \

待容器运行后在群晖web界面进入此容器后台,部署环境。

// 安装一些包
yum -y install passwd vim unzip openssl openssh-server openssl-devel
// 修改登录密码
passwd
// 修改ssh允许密码登录
vim /etc/ssh/sshd_config
#打开注释 PermitRootLogin yes, 允许密码登录,保存退出
// 避免ssh自动断开
#ClientAliveInterval 0
#ClientAliveCountMax 3
// 修改为
ClientAliveInterval 60
ClientAliveCountMax 3
// 提高ssh连接速度
GSSAPIAuthentication no
UseDNS no
// 配置证书
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_key
// 测试开启ssh
/usr/sbin/sshd -D & 

测试没有问题之后开始写启动脚本。

// 创建启动脚本
touch /run.sh
vim /run.sh
// 写上内容
#!/bin/bash
/usr/sbin/sshd -D
// :wq保存

将当前容器保存为镜像

docker ps -all
docker commit 容器id centos7-ssh
// 再次创建容器
docker run -itd \
--name Centos7-ssh \
--hostname Centos7-ssh \
--network bridge-host \
--ip=192.168.10.31 \
--privileged=true \
--restart=always \
centos7-ssh \
/run.sh

这样就可以自动启动ssh了。

镜像文件

配置过程比较繁琐,提供一个配置好的镜像,纸盒网盘 - Docker 镜像
账号:root
密码:009988

声明:纸盒博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Docker 下 Centos 部署 ssh 实现远程开发


Carpe Diem and Do what I like