文档章节

SSH密钥登录(ssh-keygen)

shawnplaying
 shawnplaying
发布于 2016/12/21 10:25
字数 949
阅读 35
收藏 0

总的来说SSH方式验证有两种:

1 用户名密码方式,很常见。问题在于(根据网上资料)你可能登录的不是你想登录的服务器,可能存在中间机器进行欺骗(我自己理解,例如使用域名登录而域名被篡改,就可能登录到另外的机器上。还有一种情况就是堡垒机)。

2 密钥登录。

“如果你要连接到ssh服务器,ssh客户端会向ssh服务器发出请求,请求用你的密钥进行安全验证。ssh服务器在收到该请求之后,会先在ssh服务器上,检查你登陆的用户的主目录下寻找对应的公钥,然后把它和你发送过来的公钥进行比较。如果两个公钥一致,ssh服务器就用公钥加密“质询”(challenge)并把它发送给ssh客户端。ssh客户端在收到“质询”之后就可以用你的私钥解密该“质询”,再把它发送给ssh服务器。”

 

下面介绍SSH密钥登录设置方法:

两台服务器A和B,要实现B用无密码方式登录A。

1 在B机器上生成密钥:

[wcadmin@BLPCGT002 ~]$ uname -a
Linux BLPCGT002.lenovo.com 2.6.32-573.el6.x86_64 #1 SMP Wed Jul 1 18:23:37 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
[wcadmin@BLPCGT002 ~]$ pwd
/home/wcadmin
[wcadmin@BLPCGT002 ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/wcadmin/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/wcadmin/.ssh/id_rsa.
Your public key has been saved in /home/wcadmin/.ssh/id_rsa.pub.
The key fingerprint is:
04:d0:72:aa:1e:08:ab:40:59:61:4c:c7:dd:be:3c:d9 wcadmin@BLPCGT002.lenovo.com
The key's randomart image is:
+--[ RSA 2048]----+
|  o+++o .        |
|  .oo.oo .       |
|  o  +  o        |
|.o  .  . .       |
|oo .    S +      |
|+ o      = E     |
|o. .      .      |
|. .              |
|                 |
+-----------------+
[wcadmin@BLPCGT002 ~]$ ll .ssh
total 12
-rw------- 1 wcadmin wcgrp 1675 Dec 21 09:56 id_rsa
-rw-r--r-- 1 wcadmin wcgrp  410 Dec 21 09:56 id_rsa.pub
-rw-r--r-- 1 wcadmin users 2365 Dec 20 17:54 known_hosts
[wcadmin@BLPCGT002 ~]$ 

2 在A机器上配置。

将B机器上~/.ssh/id_rsa.pub文件上传到A中,并将其内容放入在A中~/.ssh/中。如下:

wcadmin@BJLTPGPLM1001T.lenovo.com-/home/wcadmin/.ssh->scp wcadmin@10.99.200.46:/home/wcadmin/.ssh/id_rsa.pub id_rsa_10.99.200.46.pub
The authenticity of host '10.99.200.46 (10.99.200.46)' can't be established.
RSA key fingerprint is 78:73:74:20:e9:78:5b:27:68:be:c1:f4:71:a6:44:b6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.99.200.46' (RSA) to the list of known hosts.
wcadmin@10.99.200.46's password: 
id_rsa.pub                                                                                                                 100%  410     0.4KB/s   00:00    
wcadmin@BJLTPGPLM1001T.lenovo.com-/home/wcadmin/.ssh->ll
total 8
-rw-r--r-- 1 wcadmin wcgrp  410 Dec 21 10:00 id_rsa_10.99.200.46.pub
-rw-r--r-- 1 wcadmin wcgrp 1968 Dec 21 10:00 known_hosts
wcadmin@BJLTPGPLM1001T.lenovo.com-/home/wcadmin/.ssh->cat id_rsa_10.99.200.46.pub  > authorized_keys
wcadmin@BJLTPGPLM1001T.lenovo.com-/home/wcadmin/.ssh->ll
total 12
-rw-r--r-- 1 wcadmin wcgrp  410 Dec 21 10:00 authorized_keys
-rw-r--r-- 1 wcadmin wcgrp  410 Dec 21 10:00 id_rsa_10.99.200.46.pub
-rw-r--r-- 1 wcadmin wcgrp 1968 Dec 21 10:00 known_hosts
wcadmin@BJLTPGPLM1001T.lenovo.com-/home/wcadmin/.ssh->rm id_rsa_10.99.200.46.pub 

上面是最简单的方法。

 

下面进行一些说明。

1 B中密钥文件id_rsa必须保证访问权限为600,否则登录还是会提示输入密码。

[wcadmin@BLPCGT002 .ssh]$ pwd
/home/wcadmin/.ssh
[wcadmin@BLPCGT002 .ssh]$ ll
total 12
-rw------- 1 wcadmin wcgrp 1675 Dec 21 09:56 id_rsa
-rw-r--r-- 1 wcadmin wcgrp  410 Dec 21 09:56 id_rsa.pub
-rw-r--r-- 1 wcadmin users 2365 Dec 20 17:54 known_hosts
[wcadmin@BLPCGT002 .ssh]$ 

2 ssh-keygen默认加密方式为rsa,可以通过文件名或者查看文件内容得知。

[wcadmin@BLPCGT002 .ssh]$ more id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw75ZqWFoMU66VUYB7IJmGKT2x5iVyujcK1B99LyBXNgQ1BFdElw6zEG8Gb+95T3Q35P8QVVG6yGe9vpIJ6fFuvePgK6Ssd4GfG41Jpwc3Yiics0mR7ENijyaE
1gIwIxwxfn/BNjymXS8lA8yhRdYpg68H+jh2E/qGlJ/wrYFSfunrWp5LtJHrnNDHbfjGKZn2ZhMZsrTkj2WdZjhB9QlxC64SJpCTcAFXW0MutvZkm7XXg0IBCoYLkbLYkMGlO7moU4BwfBNVAFv4mJaMurzNA
kr2JuVcPXHqfGklGEzQm+L/AZpo3QZEuuyoC/nI+VmMnFZdswZ4gbIhgroiYfmxw== wcadmin@BLPCGT002.lenovo.com
[wcadmin@BLPCGT002 .ssh]$ 

如上,ssh-rsa开头。

另外ssh-keygen可以指定加密方式,例如ssh-keygen -t dsa。

还有其他参数比如密钥长度,可以参考帮助。

 

3 ssh-keygen生成密钥时,可以设置私钥加密,但是一般我们都不设置。

4 在window下也可以设置,例如使用xshell等工具设置。

 

这里有比较详细的说明:https://my.oschina.net/lanni654321/blog/414523

© 著作权归作者所有

shawnplaying
粉丝 15
博文 128
码字总数 70642
作品 0
海淀
系统管理员
私信 提问
理解OpenSSH的RSA和DSA认证过程

OpenSSH 的 RSA 和 DSA 认证协议的基础是一对专门生成的密钥,分别叫做 专用密钥和 公用密钥。使用这些基于密钥的认证系统的优势在于:在许多情况下,有可能不必手工输入密码就能建立起安全的...

LionelShen
2015/03/02
0
0
CentOS设置ssh密钥登录

CentOS设置ssh密钥登录 centos 系统安全防御 2017年12月2日 329 0 0 一、生成密钥对(两种方式)并配置 方式1:使用ssh-keygen(1)生成并配置 (1)生成密钥对 [root@iZwz9catu2mrq92b07d1d0...

linjin200
2018/11/12
0
0
OpenSSH升级到最新版本(openssh-7.7p1.tar.gz)

OpenSSH升级到最新版本(openssh-7.7p1.tar.gz) 1############################################################### 查看升级前的环境 [root@localhost zlib-1.2.11]# cat /etc/redhat-re......

shangshanyang
2018/06/02
0
0
ssh-keygen的学习总结

ssh-keygen介绍 维基百科上关于ssh-keygen的介绍如下: ssh-keygen is a standard component of the Secure Shell (SSH) protocol suite found on Unix and Unix-like computer systems use......

潇湘隐者
2018/08/02
0
0
【 Linux学习】SSH连接时出现Host key verification failed的原因及解决方法以及ssh-keygen命令的用法

版权声明:本文为【欧阳鹏】原创文章,欢迎转载,转载请注明出处! 【http://blog.csdn.net/ouyang_peng】 https://blog.csdn.net/qq446282412/article/details/83115290 一、问题描述 今天下...

欧阳鹏
2018/10/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

protoc 编译工具

在进行开发 protoc 之前,你需要首先在你的计算机中安装 protoc 编译工具。 下载编译工具 进入 Protocol Buffers 的源代码中然后选择发布的版本中,找到对应的版本。项目的链接地址为:https...

honeymoose
今天
1
0
uniapp + bootstrapvue 移动/PC 一套搞定 (一)配置bootstrapvue

1.准备文件 自己到DCloud官网: http://dcloud.io/ 去下载官方的IDE Hbuilder,新建一个空的uniapp项目即可。 uniapp框架自带优化的vue,我们仅仅需要准备以下三个文件: bootstrap.min.css ...

panyunxing
今天
10
0
Android Camera原理之camera service类与接口关系

camera service主要是指 frameworks/av/services/camera/下面的代码,最近在看这一块的代码,为了更好地理清这一块的代码,也为了后续学习camera方便一些,我觉得很有必要理一下这一块的整体...

天王盖地虎626
今天
2
0
Golang学习笔记

[TOC] Golang学习笔记 这个学习笔记是最早在1.初,版本左右的时候写的,和当前最新的版本可能会有较大的差异. 因为成文比较早,文章里面又有很多自己的见解,有些东西当时理解的不太透彻可能写错...

我爱吃炒鸡
今天
14
0
科技赋能成效显著!金融壹账通两大赋能项目荣获IDC大奖

7月19日,2019IDC中国未来金融论坛曁颁奖典礼于北京举办。由金融壹账通赋能的长春农商银行多人视频面审智能风控系统、包头农商银行互联网银行SaaS服务两大项目因在项目的创新性、技术领先性、...

IFTNews
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部