我允许亚马逊为我创建一个密钥对。它有效,我可以 ssh 进去。
我使用 PuTTYgen 创建了另一个密钥对。
遵循 https://help.ubuntu.com/community/SSH/OpenSSH/Keys 和 http://www.cyberciti.biz/tips/linux-multiple-ssh-key-based-authentication.html 的指示
- 我执行了命令
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 已重新启动 SSH 服务
生成的authorized_keys
如下所示:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCIm2L1LrZji0ZjS0BFpo+lPresjSzBru2kZYQFwT2fB/6vsC+n1hPmA5peRkubMk5ahGawvqODX4ERYYMkP/imKK95el3Gx9n1zUO58PR2EH7qeRHZYtw1OwivDndTgB3eykJGtwJ80iyKa/H0yI8QdKNeQk91fRe9SntCHO63xfqvZKUjNgDtXhGmRAumCcwdMHU4viWlgIGcj7mARz+JDTD/8s8JbiW7UyUqxKGDwv0TZxxNbvIbUduQ61hkogPPaK9ECRBX5cc0iS44FgG8SbIGUZLt7/eV5tc8pAjQc5pWyZBDewV4E2HbCtHM6MoWtbmMKQjIzSauUnkUCWG/ crave
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20141212"
AAAAB3NzaC1yc2EAAAABJQAAAQEA03FN7q5+yoRw3Fp9iJbd70Mc1Cbrc+z8SsFT
DaP27uoJy9eRjizikkIEhJNAU9Ql86S78oJzfiw+DrWVeoMHBMmY6yV/KFHBYlhl
waJp7dk9hwlQyCZRY4iiZT2o+TPcYj0FCk1V/Am8svtlgVNuRfo9G4zmBeRc+Njt
zfTZDmUpN1u70FVNOhGNHq2rSyG+Q8RJO1pX8jg82kXusHxZRMK6LlhBdaWEbr2w
Y8X89Eqg2UjNfkl4cOmx3rvVfK6xHbKoeGPEdDXDKghiflM1GCNwG4khIBDBLXZs
8bYzeTcIKGa3WAN7MoO1tvVKwpMVHR673Ypz3dLpD53WjxNmCw==
---- END SSH2 PUBLIC KEY ----
第一个公钥仍然适用于亚马逊生成的私钥,但第二个公钥无法识别PuTTYgen创建的私钥。
我得到
服务器拒绝了我们的密钥
当我按照您指向自己的(正确)说明进行操作时,我的id_rsa.pub
文件遵循预期的格式:
ssh-rsa <key> comment>
如果您以上述格式附加公钥,它将起作用。
虽然我相信您实际上没有按照说明进行操作,但从 PuTTYgen 保存的公钥是它自己的多行格式(正如我们在您生成的authorized_keys
中看到的那样)。
OpenSSH服务器不理解这种格式。
解决 方案:
要么完全按照您指出的说明进行操作(特别是使用
ssh-keygen
生成密钥对)
或者按照 PuTTYgen 的说明,从标有公钥的 PuTTYgen 框中复制粘贴 OpenSSH 格式的公钥,以粘贴到 OpenSSH authorized_keys文件中。