Docker中centos7.5安装ssh服务

半兽人 发表于: 2018-11-07   最后更新时间: 2022-09-28 15:21:09  
{{totalSubscript}} 订阅, 4,955 游览

docker安装好后,自己动手做个自己的docker镜像,首先需要从服务器pull下一个基础的镜像,这里用 centos7.5

下载官方原始镜像

docker pull centos:7.5

下载完成后,查看镜像

docker images

查看本地的镜像列表,如图,centos那个就是刚才下载的

接着用以下命令启动,使用image创建container并进入交互模式, login shell/bin/bash

docker run -i -t centos:7.5 /bin/bash

接着终端就是容器中的centos的了,默认是root用户登录,接下来的操作都在容器中了
二、容器中安装passwd,openssl,openssh-server

yum install passwd openssl openssh-server -y

安装完成后,启动sshd:

/usr/sbin/sshd -D

这时报以下错误:

[root@ /]# /usr/sbin/sshd 
Could not load host key: /etc/ssh/ssh_host_rsa_key 
Could not load host key: /etc/ssh/ssh_host_ecdsa_key 
Could not load host key: /etc/ssh/ssh_host_ed25519_key

执行以下命令解决:

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 '' 

然后,修改/etc/ssh/sshd_config配置信息:

  • UsePAM yes改为UsePAM no
  • UsePrivilegeSeparation sandbox改为UsePrivilegeSeparation no

可以用vi改,也可以用下面命令

sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

修改完后,重新启动sshd

/usr/sbin/sshd -D

然后修改root密码

passwd root

或者直接一句修改

echo123456″ | passwd --stdin root

接着需要把修改后的镜像保存了,首先输入exit退出容器,再使用下面命令查看刚运行过的。docker commit将修改后镜像保存到本地,参数是ID,名字

# docker ps -all

CONTAINER ID IMAGE    COMMAND    CREATED       STATUS          PORTS   NAMES
b1426410f233 centos:7  "/bin/bash" 4 minutes ago    Exited (0) 4 seconds ago      centos7ssh
#docker commit b39826410fe60 myimage/centos7-ssh

下次可以输入刚保存的名字启动修改过安装了ssh服务的镜像了。

更新于 2022-09-28

查看docker更多相关的文章或提一个关于docker的问题,也可以与我们一起分享文章