|
1)停止 sshd 服务。' M! n+ P @& l( i/ \% P
' w1 t: j& V5 s X5 Oservice ssh stop4 Z( i3 z( V9 Q
2)手动 debug 模式运行 sshd 。
+ _9 O7 l! S4 a2 Z7 h2 B* q* d5 D* T% y4 ~
/usr/sbin/sshd -d -p 22
: z8 ~5 I, B V& a0 Z: a3)运行失败,报错:- I% B. a6 i) v% [% o& T
8 `3 M: ~0 M8 b* _3 R' ~- }
Could not load host key: /etc/ssh/ssh_host_ed25519_key
z% u& M; r7 R# x) F% r2 PMissing privilege separation directory: /run/sshd7 c: }* Q7 Z& t! e" S2 j, g7 o* Q- G
4)添加 -h /etc/ssh/ssh_host_rsa_key 参数消除第1个报错。
* }5 z8 R/ x& g4 C/ N* d ]$ }( v" p. M
5)运行命令 mkdir systemd-tmpfiles --create 消除第2个报错。% {3 J! |& p! Y9 x' w1 ]1 Z
4 E, C6 G- j: X6)用下面的命令成功运行 ssh 。
4 b( C# [0 D! q/ @
0 |; T4 A) L3 b [" q/usr/sbin/sshd -d -p 22 -h /etc/ssh/ssh_host_rsa_key1 G8 i( s6 u b/ B" R
7)客户端 ssh 登录,手动 debug 模式运行的 sshd 报错。
' S* Z5 Z0 B* p4 ]2 ^9 k* c1 V. Y) @. Y7 g9 X5 F
debug1: list_hostkey_types: [preauth]* D& m4 N2 ?4 F; p7 [
No supported key exchange algorithms [preauth]# F! F+ X0 I% @# z: _6 @
debug1: do_cleanup [preauth]
$ |* m3 ]" V% ?; ]8)从上面的报错信息找到线索,通过下面的操作解决了问题。( q1 _8 J% d, S! m( I. Y! ]
# v! N/ W: J# O: l& j+ T/ S% ~
删除 .ssh 目录9 ^2 t% n" _. f5 C
rm -rf ~/.ssh
2 \$ Z) a# f, I8 y7 y2 y9 O" d1 i9 }$ e重新生成 ssh key
3 W+ e+ I& E/ @0 ~+ b: rssh-keygen -t rsa
: i7 X5 f6 t/ {, p: i, Q/ J7 {+ y7 b重新添加客户端 ssh 公钥到 authorized_keys
$ s6 A4 M$ C4 O: |* C: L( G4 mvi ~/.ssh/authorized_keys( {7 l4 d2 T5 r7 @
启动 sshd; {# [$ I( @- k: D$ m% K( A
service ssh start |
|