一、概述

1、就是为了让两个linux机器之间使用ssh不需要用户名和密码。采用了数字签名RSA或者DSA来完成这个操作

2、模型分析

假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;

要达到的目的:
A机器ssh登录B机器无需输入密码;
加密方式选 rsa|dsa均可以,默认dsa

二、具体操作流程

单向登陆的操作过程(能满足上边的目的):
1、登录A机器 
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行 #ssh 192.168.20.60 )

双向登陆的操作过程:

1、ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.具体方法如下:
2、两个节点都执行操作:#ssh-keygen -t rsa 
  然后全部回车,采用默认值.

3、这样生成了一对密钥,存放在用户目录的~/.ssh下。
将公钥考到对方机器的用户目录下 ,并将其复制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys )。

4、设置文件和目录权限:

设置authorized_keys权限
$ chmod 600 authorized_keys 
设置.ssh目录权限
$ chmod 700 -R .ssh

5、要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞。

我从20.60去访问20.59的时候会提示如下错误:

  1. The authenticity of host '192.168.20.59 (192.168.20.59)' can't be established.
  2. RSA key fingerprint is 6a:37:c0:e1:09:a4:29:8d:68:d0:ca:21:20:94:be:18.
  3. Are you sure you want to continue connecting (yes/no)? yes
  4. Warning: Permanently added '192.168.20.59' (RSA) to the list of known hosts.
  5. root@192.168.20.59's password:
  6. Permission denied, please try again.
  7. root@192.168.20.59's password:
  8. Permission denied, please try again.
  9. root@192.168.20.59's password:
  10. Permission denied (publickey,gssapi-with-mic,password).

三、总结注意事项

1、文件和目录的权限千万别设置成chmod 777.这个权限太大了,不安全,数字签名也不支持。我开始图省事就这么干了

2、生成的rsa/dsa签名的公钥是给对方机器使用的。这个公钥内容还要拷贝到authorized_keys

3、linux之间的访问直接 ssh 机器ip

4、某个机器生成自己的RSA或者DSA的数字签名,将公钥给目标机器,然后目标机器接收后设定相关权限(公钥和authorized_keys权限),这个目标机就能被生成数字签名的机器无密码访问了

最新文章

  1. 记住 MVC里用formcollection接收form表单传来的值,表单属性必须有name为健!
  2. email
  3. ORA-20000:ORU-10027:buffer overflow,limit of 2000 bytes.
  4. 将数据库备份到AZURE blob storage
  5. DataTable得到某行某列的值
  6. remove() 方法的兼容问题
  7. eclipse 快捷键保存在哪里
  8. WebRTC VideoEngine超详细教程(三)——集成X264编码和ffmpeg解码
  9. Python排列组合实验
  10. 关于java classpath问题
  11. 【转】VC6.0附带小工具软件一览
  12. 探秘Java虚拟机——内存管理与垃圾回收
  13. 暂停和屏蔽右键网页中的Flash
  14. Wavelet Ridgelet Curvelet Contourlet Ripplet
  15. JAVA解决前端跨域问题。
  16. Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2)
  17. 关于typeid和typeof
  18. bzoj2045
  19. 【从0到1学Web前端】CSS定位问题一(盒模型,浮动,BFC) 分类: HTML+CSS 2015-05-27 22:24 813人阅读 评论(1) 收藏
  20. top 学习

热门文章

  1. 知问前端——创建header区
  2. Spring框架学习之第3节
  3. Android笔记——Handler更新UI示例
  4. CentOS7安装配置FTP服务器
  5. 解决JVM最大内存设置问题
  6. mysql代码里面有中文注释导致语法错误
  7. Highcharts AJAX JSON JQuery 实现动态数据交互显示图表 柱形图
  8. requirejs 优化压缩
  9. c# 获取字符串数组中最长的的字符串并输出最长的字符串
  10. 安装 jdk、tomcat