解决 SSH ‘Could not load host key’

2024-06-27 19:45:00
丁国栋
原创 157
摘要:本文介绍如何在容器内使用SSH服务。

我们有时需要在Docker容器内启用SSH,无论是临时的还是长久的。

例如

docker run --name centos7 --hostname centos7 --restart always -d \
    -l maintainer='dingguodong@202406271509' \
    -v /etc/localtime:/etc/localtime \
    -p 6922:22 \
    -p 6980:80 \
    -p 6936:3306 \
    centos:7 /bin/bash

如果只是想用来做简单的测试,用后就销毁,则可以执行

docker run --rm -it -v /etc/localtime:/etc/localtime centos:7 /bin/bash

如果想在容器内运行sshd,提供SSH服务。只需要安装openssh-server然后启动它。

例如在CentOS中执行 yum install openssh-server -y 后 /usr/sbin/sshd 即可。


有时会遇到以下错误:


# /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.
#
这是因为没有给该节点生成默认的SSH key。


可以通过执行 /usr/bin/ssh-keygen -A 命令来解决。执行该命令后就可以生成上面所缺的密钥文件了。


发表评论
博客分类