本次实验主要使用目前使用最多的Putty和Xshell工具进行实验
关于SSH密钥认证原理,请参考链接:http://www.cnblogs.com/ImJerryChan/p/6661815.html
对于Putty工具:
首先在Puttygen生成秘钥文件,保存好私钥,然后在Linux系统下操作如下:
mkdir /root/.ssh ----->新建一个目录,默认这个目录不存在 chmod 700 /root/.ssh ----->修改目录权限 cd /root/.ssh ----->到/root/.ssh目录下 touch authorized_keys ----->新建一个文件 chmod 600 authorized_keys ----->修改这个文件的权限 vim authorized_keys ----->打开这个文件,然后把公钥复制进去,保存退出 vim /etc/selinux/config ----->修改这个文件 //若是临时生效的话可以setenforce 0 SELINXU=disabled ----->把yes修改为disabled iptables -F ----->清空防火墙的配置 然后保存防火墙设置 接着,在putty上加载我们的私钥: 在“SSH”-->“Auth”中加载我们的私钥,然后"LOAD",记得"SAVE"!!!!
对于Xshell工具
方法和上述一模一样 因为本人Putty使用得比较熟练,这里介绍一下Xshell生成秘钥文件的方法: 1."Tools"-->"New User Key Wizard"-->"Next"-->"Next"-->如果秘钥不用密码可以直接"Finish" 2.记得保存界面显示的公钥,然后按照上述Putty的步骤进行 3.在登陆的时候选择Public-Key,然后选择我们刚刚创建的私钥即可
//////////////////////////20170326更新////////////////////////////////
在A机器linux上生成密钥对,并把公钥放到远程B机器linux上,实现A级密钥验证登陆B机器
1 在A机器上: 2 ssh-keygen生成密钥对文件 3 [root@localhost ~]# ssh-keygen (默认是-t rsa) 4 Generating public/private rsa key pair. 5 Enter file in which to save the key (/root/.ssh/id_rsa): // 这里直接按回车即可 6 Enter passphrase (empty for no passphrase): //这里需要设置密钥的密码,如果直接回车则表示密码为空 7 Enter same passphrase again: // 再次输入密码; 这里也可以输入 ssh-keygen -t rsa -P '' ,这样可以免去输入三次回车,-P ''表示密码为空 8 Your identification has been saved in /root/.ssh/id_rsa. 9 Your public key has been saved in /root/.ssh/id_rsa.pub. 10 The key fingerprint is: 11 00:8f:00:7f:4c:21:8b:48:0b:3a:04:30:7c:32:3f:b2 root@localhost.localdomain 12 The key's randomart image is: 13 +--[ RSA 2048]----+ 14 |X+o +. | 15 |*B.B + | 16 |=.B + o | 17 | o + . | 18 | o . S | 19 | E | 20 | | 21 | | 22 | | 23 +-----------------+
这样就生成了一对密钥在/root/.ssh/ 目录下,公钥是id_rsa.pub, 私钥是id_rsa. 然后
cat .ssh/id_rsa.pub
打开公钥文件,把公钥文件复制到B机器的/root/.ssh/authorized_keys文件下
mkdir /root/.ssh chmod 700 /root/.ssh vi /root/.ssh/authorized_keys
然后就可以实现A机器密钥登录B机器了
ssh user@B_ip
免密钥密码登陆方法如下:http://www.cnblogs.com/ImJerryChan/p/6661974.html