← 返回首页

Putty设置OpenSSH公钥验证

OpenSSH公钥验证又称为无密码验证。DragonFlyBSD默认只接受公钥验证,今天就简单谈一下如何使用Putty以公钥验证的方式登录DragonFlyBSD。 设置公钥验证的逻辑很简单: 1. 首先生成一对密钥(公、私密钥) 2. 将公钥的内容放入目标用户主目录下.ssh/authorized_keys文件中 3. 使用SSH客户端登录时,指定使用相应的私钥进行验证 再来谈一下实际的设置。假定的场景是,在一台Windows系统上,使用Putty登录到DragonFlyBSD机器上。 由于Putty和OpenSSH的密要格式不同,我将使用Puttygen.exe程序来生成密钥对。

在Windows上 1. 下载[Puttygen.exe](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)程序 2. 运行Puttygen.exe,点击“Generate”,接受默认设置生成RSA公钥对。生成密钥对需要一点时间,在Puttygen程序的空白处随意移动鼠标以加快进度 3. 密钥生成后,将其顶部的文本复制并保存到一个文本文件中(即顶部标志为“Public key for pasting into OpenSSH authorized_keys file:"中的内容)。 4. 点击”Save Private Key“按钮,保存私钥。程序提示时,确认不用PassPhrase保护私钥 在DragonFlyBSD上: 5. 如果你还没有创建相应的用户,使用adduser命令创建一个用户 6. 在DragonFlyBSD上以此用户登录(控制台) 7. 在用户主目录下生成.ssh目录: mkdir .ssh 8. 由于此时DragonFlyBSD不接受SSH登录,需要启动FTPD,从而使用ftp上传公钥文件. 以root用户,运行:/usr/libexec/ftpd -D 返回到Windows机器上 9. 在命令行下,以ftp方式登录DragonFlyBSD。用户名/密码就是用刚才以adduser命令创建的用户名和密码 10. 将第3步中保存的文本文件上传到DragonFlyBSD上 回到DragonFlyBSD上: 11. 假定刚才上传的文件名为key.txt,运行如下命令: cat key.txt >> ~/.ssh/authorized_keys 再次回到Windows机器上 12. 打开Putty,在其左侧的SSH选项下有一个"Auth",点击“Auth”后,右侧窗格会有一个“Private key file for authentication"选项,点击对应的”Browse“按钮,找到第4步中保存的私钥(.ppk格式)并加载 13. 使用Putty登录到DragonFlyBSD,用户名后应该就可以登录了。