做一个关于ssh登录类的总结吧,使用密钥无密码登录的。
实验环境:两台CentOS release 6.6 (Final),IP地址分别为192.168.2.3和192.168.2.6
一、在windows上通过xshell等远程连接的终端工具时:
实现步骤是:
1、使用xshell中的工具菜单下的“新建用户密钥生成向导”生成密钥,如图
然后选择相应的密钥类型和长度,建议使用RSA,长度选择2048位或更多位的。
接着点击“下一步”,“下一步”,输入一个好区分的密钥名称,给用户密钥加密的密码我选择不输入,空白,直接点击“完成”,这样就生成了一个私钥。
你可以在 工具 菜单中的 “用户密钥管理者”当中查看你刚才生成的密钥的私钥,查看对应私钥的属性还能查看到它的公钥。
2、将公钥发给要登录的主机。
把上一步中查看的“公钥”的内容全部复制下来,保存到要登录的用户 家目录下的.ssh目录下,并命名为authorized_keys.
如果其家目录下没有这个隐藏的文件夹,你可以使用#ssh-keygen -t rsa这个命令来生成。
3、然后我们就可以使用密钥来登录这台主机了。
我把公钥放在192.168.2.3这台主机root家目录下的,因此登录时使用的用户名填成 root
点击确定后,弹出输入密码的框,这时,我们选择下面的使用Public Key,选择你公钥所对应的私钥的文件
再点击确定就无密码使用密钥登录主机了。
二、直接在Linux的命令行中时:
1、使用#ssh-keygen -t rsa命令生成密钥,按三次空格就生成好了,当中有提示很多信息。
使用此命令生成的密钥是保存在当前用户的家目录,会生成.ssh的隐蔽目录,目录下一般会生成id_rsa、id_rsa.pub、known_hosts
这三个文件,分别对应的是密钥的私钥、公钥和保存过凭证的主机列表。注意此目录的权限是700,私钥文件是600的权限,最好不好变更权限,可能会导致无法使用的。
2、使用ssh-copy-id使用把公钥拷贝到目标主机目录用户的家目录的.ssh目录下,并且为自动把拷贝过去的公钥命名为authorized_keys哦。如果没有目录的话也会自动生成。
#ssh-copy-i /path/to/publickey [email protected]
比如我是要在192.168.2.3下,使用密钥登录主机192.168.2.6的root,那么我的拷贝命令就是这样的:
#ssh-copy-i /root/.ssh/id_rsa.pub [email protected]
然后就会有一些提示哦,按要求操作。
# yes
#输入主机192.168.2.6的root密码,然后提示完成并加入了 known_hosts.
3、接着我们就可以使用密钥登录主机192.168.2.6了哦。
在192.168.2.3的命令行下
#ssh [email protected] 这个命令来登录验证是否可以使用密钥登录了。
没有输入密码就成功了,使用ifconfig查看当前IP可知已经登录成功了。