Docker CentOS官方镜像安装SSHD服务从零开始详细教程与注意事项2025版
操作思路速览:
SSH(Secure Shell)是加密网络传输协议,支持密钥与口令双重验证,并在传输、认证、连接三层次提供安全保障。掌握这些基础,后续在Docker CentOS容器中部署SSH服务将更加顺畅。
SSH概览
- SSH全称为Secure Shell,属于加密网络通信协议
- 支持基于密钥和口令两种验证方式,适配不同安全需求
- 传输层、认证层、连接层均采用加密机制,确保全程安全
安装SSH组件(Docker CentOS环境)
安装SSH需三大组件:openssh-server(核心服务)、openssl(加密通信与身份识别)、passwd(用户密码管理)。不同发行版包管理命令略有差异,命令行参考如下:
## redhat,fedora,centos等
yum install sshd 或
yum install openssh-server
## debian,ubuntu,linux mint等
apt-get install sshd 或
apt-get install openssh-server(由osc网友 火耳提供)
## 建议权限提升root用户操作(或sudo)
生成主机密钥
主机密钥是SSH服务运行的前提,直接执行以下命令生成RSA、ECDSA、Ed25519密钥对:
ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
启动SSH守护进程
建议使用nohup启动sshd,避免终端断开导致进程终止;同时配置开机自启:
# 启动服务 建议使用nohup执行,放置进程挂断
/usr/sbin/sshd -D
# 设置开机启动
echo "/usr/sbin/sshd -D" >> /etc/rc.local
特别注意:此时sshd并未注册为系统服务,因此无法通过service或systemctl正常管理——因为大多数Docker容器未集成服务管理组件,这与传统虚拟机环境有本质区别。
避坑指南
实际踩坑点集中在权限和网络环境。Docker容器内用户权限受限,即便以root身份登录,某些系统配置仍无法修改(默认Docker用户为外部普通用户)。创建容器时务必添加--privileged参数以提升权限:
docker run -t -i --privileged centos:latest
此外,容器内可能无法联网安装软件包。此时可通过docker cp注入离线包,或在创建容器时使用-v映射磁盘目录实现离线安装。提前规划好这些细节,能大幅减少调试时间。
![[Docker]centos 官方镜像安装sshd服务](/uploadfile/2026/0616/b61952c7e83f4958ea3292af31db8559.webp)