|
|
1)停止 sshd 服务。
/ D" }5 P6 y! _; F( o8 `+ w2 u' S0 z$ U+ R" w! y$ `
service ssh stop! Z/ W( q' u& J$ D4 C
2)手动 debug 模式运行 sshd 。* J6 n4 P: R' N1 r
* J. M$ p: X2 c
/usr/sbin/sshd -d -p 22! Y% x$ d* ?8 G# i! }; R
3)运行失败,报错:
& h. B) @- F v; R
: Y7 \# H. `1 `4 d- v' }Could not load host key: /etc/ssh/ssh_host_ed25519_key" A+ }! t, t1 {/ |2 y/ e& T
Missing privilege separation directory: /run/sshd e: J8 S! ~8 \! \
4)添加 -h /etc/ssh/ssh_host_rsa_key 参数消除第1个报错。$ c9 k1 s: \; b! w9 v' u# m' B
' M$ D. G, H. R% n5 F; D' Z5)运行命令 mkdir systemd-tmpfiles --create 消除第2个报错。
. ]9 ^! y$ @8 h3 K7 J* E8 ?4 Z* v
2 t5 N J" S. F' d1 ~6)用下面的命令成功运行 ssh 。
) A" H. _- l8 y; J
: C8 h! u, r9 B e/ Y" j/usr/sbin/sshd -d -p 22 -h /etc/ssh/ssh_host_rsa_key, @6 [, ?9 A" a/ Q/ I2 |* R
7)客户端 ssh 登录,手动 debug 模式运行的 sshd 报错。
( u, v3 b9 \" q) s9 @' j; r5 ^
7 k1 i8 D: i) y2 H$ h' ^; k: jdebug1: list_hostkey_types: [preauth]
9 I, J9 E5 D' U" y" H# f8 PNo supported key exchange algorithms [preauth]5 Z- @$ Q( L% ?0 W5 G2 I) ]
debug1: do_cleanup [preauth]+ |& Z/ v# A- T$ J: K; @9 M
8)从上面的报错信息找到线索,通过下面的操作解决了问题。: i, o3 Q) u+ `7 F, m) v- O, [
1 N. {% I$ H# }2 J
删除 .ssh 目录
$ b) L' {3 y: z2 c7 Wrm -rf ~/.ssh
) M& [5 o, a/ c6 `! h重新生成 ssh key( ~* M4 V! _% X
ssh-keygen -t rsa' A( h+ ^& \& r! {5 K1 v: n
重新添加客户端 ssh 公钥到 authorized_keys, G2 ~3 h4 ]9 [7 i. p- W+ x
vi ~/.ssh/authorized_keys$ R; n! h4 Q0 F, `' d4 t
启动 sshd: @/ ?! H, X5 \" `0 o" M
service ssh start |
|