|
|
1)停止 sshd 服务。
9 v0 h) v/ W, b6 F* [
0 g2 p( f2 M/ o! `service ssh stop
! u3 l- p, x0 V4 e2)手动 debug 模式运行 sshd 。) m( b m( q% e' b4 F2 R
Q7 E( E1 e' L- Q0 b
/usr/sbin/sshd -d -p 22! _( K& }, b2 O; E2 g0 R: M' m0 ]
3)运行失败,报错:% r I% D) g/ h! o: H6 p
( r# W8 A7 U+ E& M w
Could not load host key: /etc/ssh/ssh_host_ed25519_key
2 s Q# q; M( ?3 g% w5 m$ e4 ?" @Missing privilege separation directory: /run/sshd# |4 r2 B7 s! B1 w
4)添加 -h /etc/ssh/ssh_host_rsa_key 参数消除第1个报错。
1 a! o5 ~ d) A. L7 B! l8 |6 Q: H* B) \3 R. D% l
5)运行命令 mkdir systemd-tmpfiles --create 消除第2个报错。: U) u3 V$ k$ x- U. c0 [" l, U+ ^
2 Q4 B; W+ C' @8 p' a6)用下面的命令成功运行 ssh 。 { D! r/ f, ?! ^
& ]# @7 R, B* H" Z, u/usr/sbin/sshd -d -p 22 -h /etc/ssh/ssh_host_rsa_key
0 i8 p5 p8 g- V6 Q; H; `" d2 ~7)客户端 ssh 登录,手动 debug 模式运行的 sshd 报错。
. A; _0 P$ w! O- j; D/ w3 F5 F# B6 p6 u1 A9 E5 K5 K2 Y9 o5 C! K
debug1: list_hostkey_types: [preauth]
; y* ^/ {1 S, Z. @" f! _7 o: @No supported key exchange algorithms [preauth]5 }. K$ y" X- t7 _2 q
debug1: do_cleanup [preauth]
% a7 z9 ]% p) G8 g8)从上面的报错信息找到线索,通过下面的操作解决了问题。, V6 d; @' H' E) g8 x
/ f7 o1 r( m6 a. K1 ~3 W) |, `
删除 .ssh 目录# K% _' m0 q! H- ~3 {1 ]
rm -rf ~/.ssh
/ Y( a8 J! n; {1 o) r% M4 G重新生成 ssh key
) f$ l! q' K& }7 _: a8 Pssh-keygen -t rsa) i! V9 `/ Y$ K! D0 Z# H
重新添加客户端 ssh 公钥到 authorized_keys% E. z$ [; o$ P( _) G8 H: r
vi ~/.ssh/authorized_keys
2 }! I5 v) b' g) Y2 j+ u! B6 _启动 sshd* H) h1 {: f L$ @
service ssh start |
|