ssh免密登录

来源:互联网 发布:mac的电源线终身免换 编辑:程序博客网 时间:2024/05/21 20:25


1. 什么是ssh:ssh本身是一种安全协议。xshell连接linux服务器就是通过ssh协议连接的,xshell是客户端,linux服务器是服务端。

2. 为什么需要有ssh免密登录
案例:从服务器a拷贝文件到服务器b的命令:
scp /root/install.log              root@192.168.238.4:/root
        命令解释:以目标服务器192.168.238.4的用户root名义把本服务器的 /root/install.log 文件拷贝过去,拷贝到目标服务器的 /root目录下
每次使用这个命令,回车后都要输入对方服务器对应用户的密码,不利于自动化操作,为解决这个弊端,可以使用ssh免密登录。 

3. ssh协议是一种安全协议,有两种安全验证机制
1).用户名密码验证(上面的命令需要输入用户名和密码,便是这种验证机制)

2).秘钥验证


4.配置秘钥步骤:
配置成功后的效果:服务器a免密登录服务器b,a是客户端,b是服务端。

配置ssh免密登录步骤:

1).在客户端(服务器a)生成公钥和私钥。命令:ssh-keygen。执行完命令后,会发现当前用户的家目录下有.ssh隐藏文件(命令:ls -a可以查看到该隐藏文件),里面有生成的秘钥对(公钥和私钥)。

2).把公钥发送给目标服务器(服务器b)。命令:ssh-copy-d 192.168.238.4目标服务器的ip,执行完命令后发现目标服务器b对应用户的家目录下有.ssh目录,下面有authorized_keys文件,里面存放的就是服务器a的公钥。
3).配置完。测试一下是否成功,命令:ssh 192.168.238.4 。如果登录成功说明配置成功,之后服务器a就可以免密登录服务器b。
同样的道理,服务器b如果要免密登录服务器a,在服务器b上执行上面的步骤。
 
5.给自己服务器配置ssh免密登录
xshell登录成功后,执行ssh 192.168.238.3(自己服务器的地址),会发现虽然现在是连接状态,但是仍然需要输入本机密码。
配置本机免密登录:因为上面已经使用过ssh-keygen命令,所以不能再次使用,否则服务器b的免密登录就会失效。所以直接使用ssh-copy-id 192.168.235.3(本服务器的ip地址)命令,完成后会发现本服务器的.ssh目录下有authorized_keys文件,里面存放的就是本服务器的公钥。

6.windows端使用xshell免密登录

这种情况,windows的xshell时客户端,要连接的目标服务器是服务端,在客户端生成密钥对,将公钥保存到服务器的authorized_keys文件即可。

具体步骤:

1).使用xshell上方工具选项-->新建用户秘钥生成向导,下一步。。。生成秘钥

2).然后将生成的秘钥(公钥)粘贴到目标服务器的authorized_keys文件。粘贴完后的效果:(如果没有authorized_keys这个文件,先输入ssh-keygen命令,生成 .ssh目录,然后手动创建authorized_keys文件,把xshell生成的公钥粘贴到这个文件下)



3).然后使用xshell免密登录



总结:ssh免密登录就是在本机上生成公钥和私钥,然后把公钥复制到目标服务器的authorized_keys文件下。


原创粉丝点击