机器A: 192.168.8.4
机器B: 192.168.8.5
实现在机器A上的用户usera1可以通过ssh免密码以机器B上的userb1身份登录到机器B
1,在机器A上创建用户usera1:useradd usera1
在机器A对用户usera1生成公钥/私钥对,以usera1登录
ssh-keygen -t rsa -P ''
上面这个命令会在/home/usera1/.ssh目录下生成私钥文件id_rsa和公钥文件id_rsa.pub
2,在机器B上创建用户userb1: useradd userb1
3,将用户usera1的公钥的内容添加到机器B的用户userb1的家目录的.ssh目录下的authorized_keys文件中
cat ~/.ssh/id_rsa.pub | ssh -p 22 userb1@192.168.8.5 'cat >> ~/.ssh/authorized_keys'
4,在机器A上,以usera1的身份运行下面的命令,则不需要密码可以以userb1登录机器B
SSH免密码的原理:
usera1向机器B发出请求以userb1登录,usera1将自己的公钥发送过去作为验证。
机器B收到请求后,在userb1的家目录下的/.ssh/authorized_keys查看是否和里面保存的公钥一致。
如果是一致的,机器B用公钥加密一个token发送给机器A,机器A用usera1的私钥解密再把它发送给服务器。
因为用usera1的公钥加密的内容只能用usera1的私钥解密,这样就验证了usera1的身份。
如果在机器B上还要另外两个用户userb2和userb3,
做如下的实验:
cat ~/.ssh/id_rsa.pub | ssh -p 22 userb2@192.168.8.5 'cat >> ~/.ssh/authorized_keys'
在userb2的authorized_keys中添加usera1的公钥,那么usera1同样可以免密码以userb2的身份登录机器B。
在userb3的authorized_keys中没有usera1的公钥,那么usera1以userb3的身份登录机器B时需要提供密码。
如果在机器A上还要另外一个用户usera2,没有为usera2做上述的免密码设置。
usera2的已userb1的身份做ssh登录机器B,则需要提供密码。
如果在机器A上还要另外一个用户usera3,为usera3配置了免密码以userb1登录机器B。
ssh-keygen -t rsa -P ''
cat ~/.ssh/id_rsa.pub | ssh -p 22 userb1@192.168.8.5 'cat >> ~/.ssh/authorized_keys'
usera3以userb1的身份做ssh登录机器B,则不需要提供密码。
户名和密码发给要登录的目的机器进行验证,比如当前登录为: Administrator/pwd123,而正好要登录的目标机器也有同样账号同样密码,
那么就直接登录了.
机器B: 192.168.8.5
实现在机器A上的用户usera1可以通过ssh免密码以机器B上的userb1身份登录到机器B
1,在机器A上创建用户usera1:useradd usera1
在机器A对用户usera1生成公钥/私钥对,以usera1登录
ssh-keygen -t rsa -P ''
上面这个命令会在/home/usera1/.ssh目录下生成私钥文件id_rsa和公钥文件id_rsa.pub
2,在机器B上创建用户userb1: useradd userb1
3,将用户usera1的公钥的内容添加到机器B的用户userb1的家目录的.ssh目录下的authorized_keys文件中
cat ~/.ssh/id_rsa.pub | ssh -p 22 userb1@192.168.8.5 'cat >> ~/.ssh/authorized_keys'
4,在机器A上,以usera1的身份运行下面的命令,则不需要密码可以以userb1登录机器B
[usera1@srv4 ~]$ ssh userb1@192.168.8.5
Last login: Thu Dec 4 22:13:36 2014 from 192.168.8.4
[userb1@srv5 ~]$
SSH免密码的原理:
usera1向机器B发出请求以userb1登录,usera1将自己的公钥发送过去作为验证。
机器B收到请求后,在userb1的家目录下的/.ssh/authorized_keys查看是否和里面保存的公钥一致。
如果是一致的,机器B用公钥加密一个token发送给机器A,机器A用usera1的私钥解密再把它发送给服务器。
因为用usera1的公钥加密的内容只能用usera1的私钥解密,这样就验证了usera1的身份。
如果在机器B上还要另外两个用户userb2和userb3,
做如下的实验:
cat ~/.ssh/id_rsa.pub | ssh -p 22 userb2@192.168.8.5 'cat >> ~/.ssh/authorized_keys'
在userb2的authorized_keys中添加usera1的公钥,那么usera1同样可以免密码以userb2的身份登录机器B。
[usera1@srv4 ~]$ ssh userb2@192.168.8.5
Last login: Thu Dec 4 22:46:48 2014 from 192.168.8.4
[userb2@srv5 ~]$
在userb3的authorized_keys中没有usera1的公钥,那么usera1以userb3的身份登录机器B时需要提供密码。
[usera1@srv4 ~]$ ssh userb3@192.168.8.5
userb3@192.168.8.5's password:
如果在机器A上还要另外一个用户usera2,没有为usera2做上述的免密码设置。
usera2的已userb1的身份做ssh登录机器B,则需要提供密码。
[usera2@srv4 ~]$ ssh userb1@192.168.8.5
userb1@192.168.8.5's password:
如果在机器A上还要另外一个用户usera3,为usera3配置了免密码以userb1登录机器B。
ssh-keygen -t rsa -P ''
cat ~/.ssh/id_rsa.pub | ssh -p 22 userb1@192.168.8.5 'cat >> ~/.ssh/authorized_keys'
usera3以userb1的身份做ssh登录机器B,则不需要提供密码。
[usera3@srv4 ~]$ ssh userb1@192.168.8.5
Last login: Thu Dec 4 23:54:43 2014 from 192.168.8.4
[userb1@srv5 ~]$
随便说一下Windows下远程访问,在Windows中使用\\IP\c$的方式访问另外一台机器的C盘的时候,认证方式为,首先将本机的当前登录用
户名和密码发给要登录的目的机器进行验证,比如当前登录为: Administrator/pwd123,而正好要登录的目标机器也有同样账号同样密码,
那么就直接登录了.
版权声明:本文为博主原创文章,未经博主允许不得转载。