На моем сервере Red Hat sshd не принимает мой правильный сертификат для входа в систему. Однако, если я запускаю другой sshd на другом порту, он работает! (Я предполагаю, что второй sshd загружает те же файлы конфигурации.)
второй sshd начался с: sudo /usr/sbin/sshd -p 54321 -d
# -d является необязательным и выводит отладочную информацию
ssh strange-host -p 22 -vvv
печатает:
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering public key: /home/me/.ssh/id_dsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 528 bytes for a total of 2389
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
ssh strange-host -p 54321 -vvv
печатает:
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering public key: /home/me/.ssh/id_dsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 528 bytes for a total of 2389
debug1: Server accepts key: pkalg ssh-dss blen 433
debug2: input_userauth_pk_ok: SHA1 fp 0f:1c:df:27:f7:86:49:a8:47:7e:7f:f3:32:1c:7d:04:a3:73:a5:72
Возникает вопрос, в чем разница?
Я не придумал способа получить полезный журнал из "стандартного" sshd для устранения проблемы.
Что вы получите, если включите вывод отладки и сравните результаты, например
ssh -vvv user@host 'echo Done' 2>&1 > ssh_port22.log
ssh -vvv -p 54321 user@host 'echo Done' 2>&1 > ssh_port54321.log
diff ssh_port22.log ssh_port54321.log