加载中…
个人资料
我学电脑
我学电脑
  • 博客等级:
  • 博客积分:0
  • 博客访问:18,251
  • 关注人气:13
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

wsl2启动sshd时报错的解决方案

(2024-07-30 22:04:34)
标签:

wls2

sshd

分类: Linux知识
在wsl2中,输入命令:service ssh start
启动sshd时报错:sshd: no hostkeys available -- exiting.

报错解释:
这个错误表明SSH服务(sshd)在尝试启动时无法找到任何主机密钥。主机密钥是SSH用来验证服务器身份并建立安全连接的一部分。通常,这些密钥存储在/etc/ssh/目录下,文件名通常包括ssh_host_的前缀。
可能的原因:
1、主机密钥丢失或未生成。
2、权限设置不当,导致sshd服务无法读取密钥。
3、SSH配置文件(通常是/etc/ssh/sshd_config)中指定密钥位置不正确。

解决方法:
1、检查/etc/ssh/目录下是否存在主机密钥文件,如ssh_host_rsa_key等。
2、如果缺失,可以通过SSH服务提供的ssh-keygen命令来重新生成密钥。通常需要以root用户运行,并且可能需要指定-f参数来指定密钥文件的路径。
3、确保密钥文件的权限正确。通常,私钥文件的权限应该被严格限制,只有sshd守护进程可以读取。
4、检查SSH配置文件/etc/ssh/sshd_config,确保HostKey指令指向正确的密钥文件路径,并且/etc/ssh目录具有合适的权限。
5、重启SSH服务以应用更改。

示例命令(需root权限):
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

确保在执行这些命令之前,/etc/ssh/目录具有正确的权限,通常可以使用以下命令修复权限:
chown root:root /etc/ssh/*
chmod 600 /etc/ssh/*

最后,重启SSH服务:
service sshd restart
或者
systemctl restart sshd

如果问题依旧存在,检查系统日志(如/var/log/secure或/var/log/messages)以获取更多线索。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有