使用ssh-keygen设置ssh无密码登录

原创 2013年12月05日 16:06:35

也知道这个东西,大家都会,就当是谁忘了的时候,做个提醒的吧。。。

 ssh 是一个专为远程登录会话和其他网络服务提供安全性的协议。默认状态下ssh链接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码输入和ssh认证。以下将创建过程简单介绍下。

 

假设 A 为客户机器,B为目标机;

 

无密原理:

A作为客户端,要实现无密码公钥认证,连接到服务器B上时,需要在A上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的B上。当A通过 SSH连接B时,B就会生成一个随机数并用A的公钥对随机数进行加密,并发送给A。A收到加密数之后再用 私钥解密,并将解密数回传给B,B确认解密数无误之后就允许A进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密 码。重要过程是将客户端A复制到B上。

要达到的目的:
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-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.
具体方法如下:
ssh-keygen -t rsa
然后全部回车,采用默认值.

这样生成了一对密钥,存放在用户目录的~/.ssh下。
将公钥考到对方机器的用户目录下,并拷到~/.ssh/authorized_keys中。

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

 

 

 

一、用ssh-keygen创建公钥

haifeng@haifeng-EX38-DS4:/$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/haifeng/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/haifeng/.ssh/id_rsa.
Your public key has been saved in /home/haifeng/.ssh/id_rsa.pub.
The key fingerprint is:
7b:75:98:eb:fd:13:ce:0f:c4:cf:2c:65:cc:73:70:53 haifeng@haifeng-EX38-DS4
The key's randomart image is:
+--[ RSA 2048]----+
|                E|
|                .|
|              ...|
|             + =.|
|        S   + +.*|
|         . . + Bo|
|        . . . = =|
|         . . . * |
|            . ..=|
+-----------------+

 

##输入后,会提示创建.ssh/id_rsa、id_rsa.pub的文件,其中第一个为密钥,第二个为公钥。过程中会要求输入密码,为了ssh访问过程无须密码,可以直接回车 。

2.查看钥匙。

[root@localhost .ssh]# ls ~/.ssh/
id_rsa  id_rsa.pub  known_hosts

###可以发现 ssh目录下的两枚钥匙。

3.将公钥复制到被管理机器上面

[root@localhost .ssh]# scp id_rsa.pub root@192.168.36.194:~/.ssh/authorized_keys
root@192.168.36.194's password:
id_rsa.pub                                    100%  408     0.4KB/s   00:00

 

4.访问

# ssh 192.168.36.194
The authenticity of host '<Game2> (<192.168.36.194>)' can't be established. 
RSA key fingerprint is 34:b9:92:06:53:e6:91:4d:47:92:73:57:78:6a:5d:09. 
Are you sure you want to continue connecting (yes/no)?yes 
Warning: Permanently added '
<Game2> (<192.168.36.194>' (RSA) to the list of known hosts. 

这是因为首次访问后,ssh会在.ssh/known_hosts中保存各个认证过的主机信息:

192.168.36.194 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAppStzIRxeFn0e737z7KO1tdm6CJUoLapaaoBDZqHy0Z11cUAmpg02dbrqwU7TBY9lDFwWQcry+W8X8qk1CoPdzu8YcMCpw5425mai0/RxkB/RPZ1putL2DQrRBMRTU1m5meLOYRXYlnU5E+YElCgH+ZJ8EXiurOzDvw6vi7pASi9wMQuJosFyNmv5E9/8ULgaKg3LtvP+0O1wPxrHOBDwVq2u9Oi7T2pX8deBEnOI4uG4CGXn/p0ml+uuS4DO3Up2VjqoRtqtuzWExnTyAGS/wQNnN3mera1ERya3FomEVHJRV5K2zJRkgSF8WfETXzQ2rAliOsW/YLTGF8vVvjo5w==

5.再次访问,ssh登录发现可以不用密码登录。

[root@localhost .ssh]# ssh 192.168.36.194
Last login: Fri Apr 22 00:56:45 2011 from 192.168.18.44
[root@Game2 ~]#
 

本文出自 “海风的linux之路” 博客,请务必保留此出处http://lhflinux.blog.51cto.com/1961662/526122

使用ssh-keygen设置ssh无密码登录

ssh 是一个专为远程登录会话和其他网络服务提供安全性的协议。默认状态下ssh链接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码输入和ssh认证。以下将创建...
  • caiyiii
  • caiyiii
  • 2013年08月29日 09:41
  • 260

linux ssh 使用ssh-keygen设置SSH无密码登录

一、SSH简介     SSH是一个专为远程登录会话和其他网络服务提供安全性的协议。默认状态下SSH链接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码输入...
  • qilixiang012
  • qilixiang012
  • 2014年12月24日 00:28
  • 926

使用ssh-keygen实现ssh无密码登录

ssh 是一个专为远程登录会话和其他网络服务提供安全性的协议。默认状态下ssh连接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码输入和ssh认证。一 登陆要...
  • u012935650
  • u012935650
  • 2017年07月27日 19:50
  • 151

关于ssh-keygen命令的介绍与用法

ssh-keygen 用于:生成、管理和转换认证密钥
  • sqfj2006
  • sqfj2006
  • 2015年05月19日 20:01
  • 1651

Linux/UNIX下 ssh-keygen 设置SSH无密码登录

一、SSH简介     SSH是一个专为远程登录会话和其他网络服务提供安全性的协议。默认状态下SSH链接是需要密码认证的,但是可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码...
  • wangyezi19930928
  • wangyezi19930928
  • 2015年07月21日 16:14
  • 337

如何使用ssh-keygen生成key

ssh-keygen - 生成、管理和转换认证密钥通常使用:[b]ssh-keygen -i -f 公密匙名>> authorized_keys[/b] 语法详细介绍[code]ssh-keygen ...
  • tigerjb
  • tigerjb
  • 2013年06月28日 13:01
  • 5882

使用ssh-keygen命令生成密钥对无密码远程登陆linux主机

ssh远程linux主机配置使用公钥登陆,省去手动输入密码的麻烦。
  • qq_32248673
  • qq_32248673
  • 2017年02月23日 09:50
  • 345

用ssh-keygen来设置ssh无密码登录

在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的。telnet,因为其不安全性,在linux系统中被搁置使用...
  • u011208304
  • u011208304
  • 2013年11月05日 11:53
  • 822

ssh-keygen 实现ssh的无密码登录

看了网络上的教程, 发现普遍少一个东西, 感觉写教程的人貌似没有实践过的吧, 写个总结, 为自己, 也为他人吧 --仅仅是单向的登录 -- 比如A主机登录B主机 1.ssh-keygen -t r...
  • hatcatxyz
  • hatcatxyz
  • 2012年12月31日 11:16
  • 83

利用ssh-keygen来设置ssh无密码登录

利用ssh-keygen来设置ssh无密码登录客户做安全检查,认为telnet和rsh均有安全漏洞,要求整改所有系统的访问方式为ssh方式(其实,无论这些安全检查的人员还是客户都不明白不安全的意义是什...
  • pathfinder163
  • pathfinder163
  • 2011年05月13日 13:24
  • 3949
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用ssh-keygen设置ssh无密码登录
举报原因:
原因补充:

(最多只允许输入30个字)