我想在CentOS6系统上为自己建立无密码的ssh。我将完成以下步骤:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
所有相应的公钥和私钥文件以及授权密钥都已创建。〜/ .ssh / id_dsa.pub的内容如下所示:
SSH-DSS AAAAB3NzaC1kc3MAAACBAMtCKpsSeE8DxjvMqCl2S62YGmR / UMXpLH + tOuCiHzITUnB44kTBfh16WGRjAKdoFcrx / xIZBXyP5YTo1rIGzLbIK + LILOyaIe17mVYWgBs5k5WENLQKwQ3W0kaNvkN + uTcGArDl9r6o8oi8Lnox0ldCp / zGsNZuJfUnCOxX0PthAAAAFQD9wyrHwmyjMKWUhva + pwzhkYjbgQAAAIAqxFHO / Cb834Wa + PcNB80PvcPlwKHMrPnPZcEl + INsNmENU + khLe812GMD8GEsLbLxMgVKlFVAGXT0WUhCYpx7VTeawZ6 / dOYlOf44Bjn2z6KAPkQaZyfTzF9gcunDdBY3uHJnOnj9c2bNfMPNc46D5cfPbAov / cNNnue2VWsmtwAAAIEAvJxL25YgbwJdwusIwcVMGjoFj8pRjYKFJwOLvfW1N + UI9u1ZCEkNmuRuOCSRgqDhL0Zr7qv11S8GT4sDdMat6xR7Qhw / Q3NwG4XIOJ5hGoHqlwIleE095JPQnmy8 / ffn4qOYPql19RGwTM3lynGVIXBxcIEKzdmeoZKWG3ejS + I = admin-cloud@computer.network.net
但是,当我运行“ssh computer.network.net”或“ssh localhost”命令时,系统会提示我输入密码(第一个问题)。输入密码并建立ssh会话后,我退出并检查〜/ .ssh / known_hosts文件,其中缓存了以下密钥:
本地主机SSH-RSA AAAAB3NzaC1yc2EAAAABIwAAAQEApHXsA7mMOtqKO1XotKTk5vM5F1LRoqxLLZw2TVLUA36BrkJAMM1EqfnH3mIoNz6sJzOdmQV2ubYGkzvCUb1TX8wUId1KQki8I1l2S52vFEwHkJlFe + KFQcU4SBtxDRDEvHkiLid0D37V + O3W6ElxhhRjkL + nebFPSFEdDlwBUTzAmR3KPD9zFjLP3JJZrwYH1E1sEl52pHbrcr7ROhfRjtz + 3glVog9tJC3Xbfwu74JeywYrKQXbtDV84CJ0FoD6WAtJ + V0Dh8hnyBDkdbBc / zVIEDcXfcVNA4yc2noAHdQQ6p11Q8zW94 / aJVhi / t0D9vSVMZP8UbHmnM2RfElIww ==
这是一个RSA密钥,而不是我生成的DSA密钥(第二个问题)。在做了一些挖掘后,我在/etc/ssh/ssh_host_rsa_key.pub中找到了这个RSA密钥。
为什么SSH使用/ etc / ssh文件夹中的键而不是我在〜/ .ssh文件夹中生成的键? 如何告诉SSH使用〜/ .ssh文件夹中的公共私钥对。看一下man ssh似乎表明这是默认行为,但显然没有发生。
提前致谢。
UPDATE
尝试ssh -v localhost的输出很冗长,但我找到了一个有趣的小窍门:
debug1: Next authentication method: publickey
debug1: Offering public key: /home/admin-cloud/.ssh/id_dsa
debug1: Server accepts key: pkalg ssh-dss blen 434
Agent admitted failure to sign using the key.
debug1: Trying private key: /home/admin-cloud/.ssh/identity
debug1: Trying private key: /home/admin-cloud/.ssh/id_rsa
debug1: Next authentication method: password
所以看起来它找到我的〜/ .ssh / id_dsa密钥,被接受,然后是“代理承认无法使用密钥签名”。之后它会查找〜/ .ssh / identity(不存在)和〜/ .ssh / id_rsa(不存在),然后最后,只需要一个密码。对这个错误的任何想法?