|
1)停止 sshd 服务。% C3 w; O( L% Q+ u% Z
% X$ N# F# v$ Iservice ssh stop3 p' P+ Q2 w! y5 Q
2)手动 debug 模式运行 sshd 。' u: O/ i" L% D+ q4 o( K8 f& K
+ W* \, Y. d# Z% ?9 a7 b" S
/usr/sbin/sshd -d -p 22- h, v8 X+ I3 b
3)运行失败,报错:' p9 @5 Q5 _: Q7 \5 J" V' [9 i: c
' i( d2 J, H* y: f* V% W4 `: {" zCould not load host key: /etc/ssh/ssh_host_ed25519_key7 o& b9 _% \* O* c3 R
Missing privilege separation directory: /run/sshd0 T8 `+ U+ T$ p5 f# S
4)添加 -h /etc/ssh/ssh_host_rsa_key 参数消除第1个报错。
& ~- G/ E, V" F# O) Q. O/ j) ]
2 J8 e. u. _ b4 J5)运行命令 mkdir systemd-tmpfiles --create 消除第2个报错。, g h4 J. Q7 |/ D v% R
7 X& e) J1 Z Q" W e6 B# E j i Y# t6)用下面的命令成功运行 ssh 。. u. T" @/ O% j4 F4 z( w2 a& K6 l
/ L, W p! W! Q, T0 K/usr/sbin/sshd -d -p 22 -h /etc/ssh/ssh_host_rsa_key
$ O! E( [3 k' `) [: W9 ]% L7)客户端 ssh 登录,手动 debug 模式运行的 sshd 报错。
$ Y( D5 K7 M7 E6 I
& _+ A) z9 R" x( w6 ndebug1: list_hostkey_types: [preauth]: Y6 x3 M4 t- D9 E
No supported key exchange algorithms [preauth]
& Z, b$ Z- [3 q" O ]2 s/ hdebug1: do_cleanup [preauth]. c# c( J& r' d3 m$ h
8)从上面的报错信息找到线索,通过下面的操作解决了问题。
6 D: _5 F$ s# w
5 `3 {# k. e& X( r- _删除 .ssh 目录
; X A3 H8 G5 f9 qrm -rf ~/.ssh
* P; X, O K: A& i重新生成 ssh key$ m* F0 o& U2 _7 d1 Y0 v5 Q n
ssh-keygen -t rsa1 I; F- Q5 {$ ^, S
重新添加客户端 ssh 公钥到 authorized_keys
& ]4 l! Y- M7 b& z* {vi ~/.ssh/authorized_keys
6 P" s. J% l2 H4 T5 t/ [. Y# N. Y启动 sshd
- p: k# C" P7 {- Hservice ssh start |
|