我一直在处理一个 openSSL.cnf 文件,打算用它来创建自己的 PKI。我还没有完成那个文件的工作,但我必须做些其他事情。所以我把它写入磁盘,未完成,分离了我的屏幕会话并注销。从那时起,我就无法使用带有私钥的 SSH 重新登录到机器(这是进入机器的唯一方法)。
如果我运行ssh -vvv example.com
,我会得到以下内容
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug2: ssh_connect: needpriv 0
debug1: Connecting to example.com [1.2.3.4] port 22.
debug1: Connection established.
debug1: identity file /c/Users/user/.ssh/identity type -1
debug3: Not a RSA1 key file /c/Users/user/.ssh/id_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug2: key_type_from_name: unknown key type 'Proc-Type:'
debug3: key_read: missing keytype
debug2: key_type_from_name: unknown key type 'DEK-Info:'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
^^^ this line 24 more times ^^^
debug2: key_type_from_name: unknown key type '-----END'
debug3: key_read: missing keytype
debug1: identity file /c/Users/user/.ssh/id_rsa type -1
debug1: identity file /c/Users/user/.ssh/id_dsa type -1
ssh_exchange_identification: Connection closed by remote host
看起来 ssh 对我的 格式有意见~/.ssh/id_rsa
。但是,同一个密钥仍然适用于不同的服务器。无论如何,我的身份文件如下所示:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,...
...
-----END RSA PRIVATE KEY-----
在客户端上,我使用 GitBash 附带的 ssh 实现,因为它能给我最详细的输出。(Putty 在调试部门不太健谈)。
我是不是搞乱了服务器上的 sshd 配置?我还能以某种方式强制使用 ssh 和适当的身份文件吗?服务器运行的是 debian 6
答案1
当我再次获得服务器的访问权后,我自己就找到了答案。
答案是肯定的。移动未完成的编辑/etc/ssl/openssl.conf
以/root/messed-up.openssl.cnf
修复我的问题。