必要条件
要证书登录,必须满足以下条件:
1. 在Ubuntu下通过“ssh-keygen”产生公钥和私钥文件,即“id_dsa.pub”和“id_dsa”文件;
2. OpenWrt上保存有证书的公钥,即“id_dsa.pub”里的内容(保存在“/etc/dropbear/authorized-keys”里,文件可能不存在);
3. 在Ubuntu的~/.ssh/文件夹下,有“id_dsa”文件;
4. 在Ubuntu下执行:
$ ssh root@192.168.1.20
即可自动登录。
以下为具体操作步骤
1. 通过“ssh-keygen”生成公钥和私钥
在Ubuntu上执行:
$ cd .ssh/
$ ssh-keygen -t rsa
2. 上传公钥至ssh服务
将生成的“id_rsa.pub”传到OpenWrt,然后在OpenWrt上执行:
# cat id_rsa.pub >> /etc/dropbear/authorized_keys
上面这步非常重要,请不要直接将id_rsa.pub拷贝成authorized_keys,会造成不识别证书。
3. 尝试登录
在Ubuntu下执行(假设OpenWrt的IP为192.168.1.20):
$ ssh root@192.168.1.20
即自动登录成功!
4. 保存和备份私钥
在Ubuntu上执行:
$ cd ~/.ssh/
将“id_rsa”保存好,只需要分发“id_rsa.pub”到目标即可。
通过putty来实现证书登录
“Putty”的证书是需要转换一下才能使用的。
(参考自“丶Source”同学的博客,地址为:http://blog.sina.com.cn/s/blog_4da051a60102ux9x.html)
1. 下载“puttygen”
puttygen的下载地址:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
直接下载链接:
http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
2. 转换证书
打开“puttygen”,载入私钥“id_rsa”,点击“Save private key”,保存为“.ppk”格式的“putty”证书;
3. 设置、保存并连接
3.1 打开“putty”,填写地址,端口号,选择“ssh”协议;
3.2 在左侧找到“Connection”,在“Data”项,在“Auto-login username”项填写用户名;
3.3 在“SSH”->“Auth”,在“Private key file for authentication”项,点击“Browse...”,选择第2步转换的“.ppk”格式的证书;
3.4保存当前的“Session”后;
3.5 点击“Open”,即可自动登录。