ssh无密码访问

来源:互联网 发布:行业研究 知乎 编辑:程序博客网 时间:2024/05/18 00:02
ssh无密码访问
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
(此时在用户的主目录下生成隐藏文件.ssh,在.ssh文件下有两个文件:id_rsa(A的私钥)和id_rsa.pub(A的公钥)文件)
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
设置authorized_keys权限
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys 
注意事项:
若是三台机器执行上述操作后,生成各自的authorized_keys 文件,自己可以无密码访问自己
若想无密码访问另外两台机器,另外两台的秘钥一定不要用复制和粘贴,因为复制粘贴可能会增加换行或是空格,这样无法实现无密码访问的。
具体操作如下:
三台机器192.168.190.100  192.168.190.102    192.168.190.123  
前提:目前三台机器的authorized_keys 已经存在各自的秘钥(即可以无密码访问自己的机器)
下面设置100无密码访问102 和123两台机器:
第一步:在100机器上进行下列命令(即将自己的秘钥发送给102和123)
scp ./.ssh/id_dsa.pub rdb@192.168.190.102:/home/rdb/
scp ./.ssh/id_dsa.pub rdb@192.168.190.123:/home/rdb/
第二步:
在102机器上将100的秘钥加入到自己的authorized_keys文件中,执行下列操作
cat id_dsa.pub >> ./.ssh/authorized_keys
此时,100可以无密码访问102了
验证方法
在100机器上执行:ssh 192.168.190.102无需输入密码,直接登录
第三步,同样在123机器上执行第二步后,此时100可以无密码访问123机器了。
若想使102访问100和123操作如上

知道怎么设置了吧,那我们再来讲讲原理吧,哈哈
1.加密算法
对称加密算法:
    甲方选择一种加密规则,对信息进行加密;乙方使用同一种规则,对信息进行解密。由于加密和解密使用同一种规则,因此成为堆成加密算法
弱点:甲方要把秘钥传给乙方,否则无法解密。传递的安全性成为最大的问题

非对称加密算法
甲方和乙方使用不同的规则。具体的为:

  • 乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
  • 甲方获取乙方的公钥,然后用它对信息加密。
  • 乙方得到加密后的信息,用私钥解密。

所以我们这里用的就是非对称加密算法RSA
我们来具体了解下我用A B来表示两台主机:
A执行了ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa以后生成自己的私钥和公钥;
然后将公钥发送给B主机
当A使用ssh B时,B主机就会生成一个随机数,利用A发送过来的公钥进行加密,发送给A
A收到B发送过来的信息后,用自己的私钥进行解密后发送给B
B收到后验证正确后,则允许A无密码访问自己的主机了。
现在你对这个原理懂了吗~~~
0 0
原创粉丝点击