首页 > 技术文章 > 使用 ssh 的公钥密钥实现自动登陆

asia90li 2017-02-16 17:32 原文

目的:使用 ssh 的公钥密钥实现自动登陆

第一步:生成 ssh 公钥密钥对
现在的 linux 服务器默认都安装 openssh 的软件。
生成公钥密钥对是在管理服务器上生成的:

ssh-keygen -b 1024 -t rsa

回车

aaaaa

aaaaa

 

[root@server ~]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.     #提示正在生成rsa密钥对

Enter file in which to save the key (/home/usrname/.ssh/id_dsa):     #询问公钥和私钥存放的位置,回车用默认位置即可

Enter passphrase (empty for no passphrase):     #询问输入私钥密语,输入密语

Enter same passphrase again:     #再次提示输入密语确认

Your identification has been saved in /home/usrname/.ssh/id_dsa.     #提示公钥和私钥已经存放在/root/.ssh/目录下
Your public key has been saved in /home/usrname/.ssh/id_dsa.pub.

The key fingerprint is:
x6:68:xx:93:98:8x:87:95:7x:2x:4x:x9:81:xx:56:94 root@server     #提示key的指纹 
 

-b 1024 采用长度为1024字节的公钥/私钥对,最长4096字节,一般10242048就足够满足安全需要了,太长的话加密解密需要的时间也增长。
-t rsa  采用rsa加密方式的公钥/私钥对,除了rsa还有dsa方式,rsa方式最短不能小于768字节长度。
如果还需要使用更多其他参数请参考man ssh-keygen

         在生成密钥对的过程中你被询问:输入密码短句 Enter passphrase (empty for no passphrase) ,密码短句(passphrase)是你使用一个短语或者一句话作为密码输入,再由系统内部的加密或是散列算法生成虚拟密码后,进行下一步的认证。好处是 增强了安全性不易被破解。看过很多文章,里面都把这个短句输入为空,也就是代表不使用密码短句。在这里我强烈要求你输入密码短句。有人会说使用密码短句 后,登陆还要输入密码短句这样使用没有比使用用户名和密码登陆方便多少,我说请你不要急,接着看我的文章。
注意:如果你生成密钥对而不设置密码短语,那么如果你的私钥丢失了,那么就你的麻烦可能会比丢失用户名密码还严重。

 

 

cat id_rsa.pub >> authorized_keys

 

chmod 600 authorized_keys

.ssh下面的私钥下载下来,配置xshell密钥登陆

 

 

 

 

 

A - root/.ssh中的id_rsa.pub修改名字为authorized_keys 并且用chmod 600 authorized_keys设置权限。

B - 找到/etc/ssh/sshd_config ,把RSAAuthenticationPubkeyAuthentication两行前面的#注释去掉。

C - 重启SSHD服务。

Debian/Ubuntu执行:/etc/init.d/ssh restart

CentOS执行:/etc/init.d/sshd restart

 

第二步:拷贝你的公钥到被管理的服务器上
在你的管理服务器上把你的公钥拷贝到被管理服务器上要进行自动登陆的用户目录下。

 

推荐阅读