原理: 密匙认证需要依靠密匙,首先创建一对密匙(包括公匙和密匙,并且用公匙加密的数据只能用密匙解密),并把公匙放到需要远程服务器上。这样当登录远程服务器时,客户端软件就会向服务器发出请求,请求用你的密匙进行认证。服务器收到请求之后,先在你在该服务器的宿主目录下寻找你的公匙,然后检查该公匙是否是合法,如果合法就用公匙加密一随机数(即所谓的challenge)并发送给客户端软件。客户端软件收到 “challenge”之后就用私匙解密再把它发送给服务器。因为用公匙加密的数据只能用密匙解密,服务器经过比较就可以知道该客户连接的合法性。

客户机:172.16.142.4 远端主机:172.16.142.5

在客户机以root用户执行下述命令:

[root@localhost .ssh]# /usr/bin/ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is: 30:f6:d7:2a:ac:56:eb:3f:fa:40:25:8d:90:96:68:cb root@localhost.localdomain

------------------------------------------------

说明: 该命令将在用户的主目录/.ssh目录下面产生一对密钥

一般采用的ssh的rsa密钥: id_rsa 私钥 id_rsa.pub 公钥

下述命令产生不同类型的密钥

ssh-keygen -t dsa

ssh-keygen -t rsa

ssh-keygen -t rsa1

-------------------------------------------------------

[root@localhost .ssh]# scp /root/.ssh/id_rsa.pub root@172.16.142.5:/root/.ssh/authorized_keys

The authenticity of host '172.16.142.5 (172.16.142.5)' can't be established. RSA key fingerprint is 4b:a5:74:fb:2e:08:60:af:fa:76:d4:b0:26:4c:13:75.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '172.16.142.5' (RSA) to the list of known hosts.

root@172.16.142.5's password:

id_rsa.pub 100% 236 0.2KB/s 00:00

-------------------------------------------------------------

说明: 将公钥拷贝到远端主机,并写入授权列表文件

你也可以把公钥文件拷贝过去后,在远端主机下直接执行

touch /root/.ssh/authorized_keys cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

-------------------------------------------------------------

操作完毕,登陆检查。

[root@localhost .ssh]# ssh 172.16.142.5

root@172.16.142.5's password:

请注意此时如果仍提示输入密码,请检查如下文件夹和文件的操作权限,这是非常重要的, 否则ssh公钥认证体制不能正常工作:

172.16.142.4(客户端)

/home/root文件夹的权限是600

/home/root/.ssh文件夹的权限是600 (好像这个权限关系不是很大)

/home/root/.ssh/id_dsa私钥的权限600

172.16.142.5(远端主机)

/home/root文件夹的权限是644

/home/root/.ssh文件夹的权限是644 (好像这个权限关系不是很大)

/root/.ssh/authorized_keys公钥的权限644

--------------------------------------------------------------

[root@localhost ~]# ssh 172.16.142.5

Last login: Sat Dec 15 21:10:17 2007 from 172.16.142.4

[root@localhost ~]#

无密码SSH登陆成功!

http://hi.baidu.com/meloidea/blog/item/63779f222b39faf0d7cae205.html

-----------------------------------------------------------------------------------------------------

本文来自:

http://sakananote2.blogspot.com/2010/07/agent-admitted-failure-to-sign-using.html

之前如果建立 ssh 连接,
只要將公鑰複製到 ~/.ssh/authorized_keys 就可以利用金鑰登入
而不需要建立密碼.

現在的 ssh 使用同樣的方法會出現錯誤訊息

Agent admitted failure to sign using the key


解決方式 在客户端使用 ssh-add 指令將私鑰 加進來 (根据个人的密匙命名不同更改 id_rsa)
# ssh-add   ~/.ssh/id_rsa 

使用ssh公钥实现ssh免密码登录相关推荐

  1. windows登录linux免密码,Windows使用SSH Secure Shell实现免密码登录Linux的方法以及使用scp2命令免密码下载文件...

    1.   环境信息 SSH Secure Shell Client所在的操作系统: Windows7 Linux服务器以及SSH的版本: [hadoop@gpmaster ~]$ cat /etc/r ...

  2. SSH信任关系配置(免密码登录)

    场景:主机A想ssh免密码访问主机B (root/非root用户通用) A→B 1.在主机A上切换到平常用来跳转的用户上(本例用普通用户GK),执行ssh-keygen命令,然后一路回车即可. roo ...

  3. Windows使用SSH Secure Shell实现免密码登录Linux的方法以及使用scp2命令免密码下载文件

    1.   环境信息 SSH Secure Shell Client所在的操作系统: Windows7 Linux服务器以及SSH的版本: [hadoop@gpmaster ~]$ cat /etc/r ...

  4. SSH代理基于Key免密码登录

    SSH 为 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全协议,SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议, 利用 SSH 协议可以有效防止远程管理过程中 ...

  5. 大数据之-Hadoop完全分布式_集群中SSH配置_远程免密码登录_为集群_群起做准备---大数据之hadoop工作笔记0036

    之前我们做集群配置的时候,去连接,别的主机,都需要输入这个主机的密码,很麻烦,做分发的时候,还得多次输入不同主机的密码,是相当麻烦 现在我们通过配置SSH来实现,主机之间的免密码登录 可以看到hado ...

  6. ssh免密码登录全过程

    生成公钥和私钥 ssh-keygen 等同于ssh-keygen -t rsa 运行上面的命令后,系统会出现一系列提示,可以一路回车,例如: $ ssh-keygen Generating publi ...

  7. linux系统密码正则,Linux密钥登录原理和ssh使用密钥实现免密码登陆

    目录 1.公私钥简介与原理 公钥和私钥都属于非对称加密算法的一个实现,这个加密算法的信息交换过程是: 1) 持有公钥的一方(甲)在收到持有私钥的一方(乙)的请求时,甲会在自己的公钥列表中查找是否有乙的 ...

  8. 主机之间ssh免密码登录

    1 前提条件 主机A,用户名为aris,IP地址为192.168.1.1 主机B,用户名为leon,IP地址为192.168.1.2 这两台主机上均安装了SSH服务器,且已经打开ssh服务: 检查主机 ...

  9. ssh免密码登录3种解决方法

    前言 如果需要远程管理几个ssh服务器,输入不输入密码都无所谓,甚至都能背下来密码.当你要管理的ssh 多达几十个时,就不想输入密码啦.这里只是记录本人的使用习惯,不一定是最佳解决方案. 方式一:专门 ...

  10. 配置免密码登录Linux服务器

    2019独角兽企业重金招聘Python工程师标准>>> 获取本机SSH公钥,cat ~/.ssh/id_rsa.pub 远程Linux服务器上,vim ~/.ssh/authoriz ...

最新文章

  1. 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)
  2. Hadoop的基础架构
  3. 支持向量回归_量化投资学习笔记22——回归分析:支持向量机
  4. Android JNI入门第四篇——jni头文件分析
  5. 一维卷积filter_面试题:CNN的卷积核是单层的还是多层的?
  6. WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity)
  7. 位置指纹法的实现(KNN)
  8. 进程 、进程组、会话、控制终端之间的关系
  9. 苹果支持安卓手机以旧换新,华为P30顶配最高才抵扣200元?
  10. 接口规范 10. 并发限制相关接口
  11. 树莓派linux i2c通信,树莓派与i2c设备的通信
  12. Facebook 的 AI 翻身之战!
  13. 内置对象session与httpSession对象是同一个东西么?
  14. Spring身份验证+CXF拦截器+RESTful
  15. SqlServer语句中替换like的另一种写法
  16. printf格式控制符的完整格式
  17. 用户登录MySQL服务器的方法
  18. 组策略开启计算机管理员账号,怎么用组策略禁用本地管理员|组策略提升管理员权限方法...
  19. 计算机磁盘怎么清理,如何清理c盘空间_WinXP系统怎么清理C盘空间
  20. python如何进行双色球抽奖_Python趣味实例,实现一个简单的抽奖刮刮卡

热门文章

  1. 巧用TreeSet求解第k小整数(洛谷P1138题题解,Java语言描述)
  2. 为什么要用SSM开发框架来架构系统?
  3. Linux 系统中 Redis 的安装及其使用
  4. webpack系列-plugin
  5. LINUX mount -t用法
  6. numpy的通用函数:快速的元素级数组函数
  7. xstream中几个注解的含义和用法(转)
  8. HAproxy编译安装
  9. Android蓝牙设备名显示修改
  10. PL/SQL 存储过程