解决 SSH ‘Could not load host key’
- 2024-06-27 19:45:00
- 丁国栋
- 原创 156
我们有时需要在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
命令来解决。执行该命令后就可以生成上面所缺的密钥文件了。
发表评论