一些比较简版的docker镜像中,是默认没有安装ssh的,当我们有这个需求的时候,需要为它安装,具体步骤如下:

一、使用 yum 安装

yum -y install openssl openssh-server openssh-clients

二、启动

注意:正常情况我们是要使用下面的命令来启动ssh和添加为系统服务的,但是因为docker中没有权限执行systemctl(除非你用特权模式启动容器)

systemctl start sshd.service
systemctl enable sshd.service

执行上面两行命令你会看到错误:Failed to get D-Bus connection: Operation not permitted

所以,我们选择将启动ssh的命令写到你docker的entrypoint命令或者脚本中,后台命令如下:

/usr/sbin/sshd -D &

此时,如果不出意外的话,会出现如下错误:

sh-4.2# /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

执行下面的3行命令,生成对应的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

最后再重新执行命令 /usr/sbin/sshd -D & 启动服务,成功!


(END)

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐