猴子请来的救兵 2018-01-17 21:30:15

CnetOS

制作可以『ssh』登录的『Linux』镜像

下载『centos』镜像

docker pull centos

启动并且登录『centos』容器

docker run -it centos /bin/bash

安装『sshd』依赖

yum -y install openssh-server
yum -y install openssh-clients

启动『sshd』服务,会报如下的错误,大致意识是要个什么『key』

# 守护启动服务
/usr/sbin/sshd -D

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
sshd: no hostkeys available -- exiting.

既然要『key』,就给它『key』,执行以下命令解决报错

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""

再次启动服务,这是是守护模式启动,没有报错,就说明启动成功了。直接『Ctrl + C』开始配置登录密码

/usr/sbin/sshd -D

修改密码

passwd root

Changing password for user root.
New password: 

设置完成后,退出容器,将容器保存成镜像

exit

查看容器『id』

docker ps -a

CONTAINER ID    IMAGE       COMMAND       CREATED              ... 
476efa1fd8e9    centos      "/bin/bash"   23 minutes ago       ...
...

将容器创建成为新的镜像,第一个参数是上面获取的容器『id』,第二个参数是取名『centos-ssh』

docker commit 476efa1fd8e9 centos-ssh

启动容器,将『22』远程连接的端口开放

docker run -d -p 10022:22 centos-ssh /usr/sbin/sshd -D

测试一下,是否能连接上容器

ssh root@localhost -p 10022

输入密码后,能正常连接,截图留念。

img

将『sshd』添加至开机启动

vi /etc/init.d/sshd_start.sh
#!/bin/sh
#chkconfig: 2345 80 90

/usr/sbin/sshd -D

添加至开机启动

chkconfig --add /etc/init.d/sshd_start.sh
chkconfig sshd_start.sh on