|
|
1)停止 sshd 服务。5 A1 R% e o; U1 y
" [9 x6 i5 Q9 r1 q4 d, i( ?
service ssh stop( E: r4 r' g$ S3 R$ s- d" }
2)手动 debug 模式运行 sshd 。
' T$ b0 F0 w6 c0 x3 A# l3 v9 Q" r
' C3 j& c' [0 q9 U2 @: t/usr/sbin/sshd -d -p 22/ d% ?" c9 d# o8 B0 D7 ~/ l
3)运行失败,报错:0 h: L% W; {: S* B
' r W8 o) k! [5 l0 t w4 LCould not load host key: /etc/ssh/ssh_host_ed25519_key: i$ n/ O2 S( p {
Missing privilege separation directory: /run/sshd! O) q2 n+ M2 Q6 r' l. l0 J* Q
4)添加 -h /etc/ssh/ssh_host_rsa_key 参数消除第1个报错。
3 r7 i( ~0 I0 v; s& j4 c5 o8 F) s- D- p" x
5)运行命令 mkdir systemd-tmpfiles --create 消除第2个报错。
, _' j! ?0 \1 C* g' H( T, x/ I% H/ t9 V9 d$ S4 } A
6)用下面的命令成功运行 ssh 。8 b* \6 s a6 x2 ?, e
6 e* Y4 P* k2 k! h/usr/sbin/sshd -d -p 22 -h /etc/ssh/ssh_host_rsa_key6 N3 W/ D$ K- Q7 y x* l( J. J+ X$ y
7)客户端 ssh 登录,手动 debug 模式运行的 sshd 报错。
% |! `" ^" z3 V7 u3 n ^1 [0 y O2 C& ?7 d3 t
debug1: list_hostkey_types: [preauth]
0 n- r. n$ p; ?) K' ANo supported key exchange algorithms [preauth]5 B( P3 \4 k0 {7 k; B: T% l
debug1: do_cleanup [preauth]
5 _ h2 o9 P2 a, h8)从上面的报错信息找到线索,通过下面的操作解决了问题。+ Q; h4 f) V# Y( }6 w
; A7 f5 b ~& ]- @: |删除 .ssh 目录& m2 V9 ^# P* ^/ v$ i
rm -rf ~/.ssh
' ^* g2 P! ]. _3 `1 M重新生成 ssh key
0 C/ I) @( J* k* vssh-keygen -t rsa c( A. C: F2 @
重新添加客户端 ssh 公钥到 authorized_keys3 \, C# I# b* T" Q9 L; ^# b
vi ~/.ssh/authorized_keys3 v# V# B, b& r+ {. [& N! u
启动 sshd2 N' y/ D( F0 b' r
service ssh start |
|