说明:今天来了一个小伙伴,因为业务需要,要登录一台测试系统,问我密码是多少,我说我配置的密钥登录的,估计他不太熟悉,所以我简单的演示了一下配置过程给他看,顺便也记录了下整个配置过程。

1、关于密钥登录系统的原理

  关于配置原理,可以参考https://help.aliyun.com/knowledge_detail/41493.html,现在阿里云的官方文档写的很详细,我也不想粘贴复制了。

2、服务端的配置过程

a)生成密钥对(这里我只是做个测试,所以一路回车就好了)

[root@LVS-DR02 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
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:
ce:6a:a7:fc:e6:d4:f4:21:98:5c:3b:f1:03:01:9d:7a root@LVS-DR02.saltstack.com
The key's randomart p_w_picpath is:
+--[ RSA 2048]----+
|        .o..     |
|          o.     |
|         .+      |
|       ..+E=     |
|        S.= +    |
|       o o + o   |
|        + . .    |
|     ..oo        |
|     .+*o        |
+-----------------+

b)查看密钥的位置(默认存在家目录的.ssh下)*:

[root@LVS-DR02 ~]# cd /root/.ssh/
[root@LVS-DR02 .ssh]# ll
total 8
-rw------- 1 root root 1679 Jun 26 20:13 id_rsa
-rw-r--r-- 1 root root  409 Jun 26 20:13 id_rsa.pub

c)设置Linux主机:

把id_rsa.pub 复制为authorized_keys,放在需要登陆的linux主机的~/.ssh目录下
[root@LVS-DR02 .ssh]# cat id_rsa.pub >>authorized_keys

d)设置ssh服务参数

SSH 服务默认开启了证书认证支持。编辑 SSH 服务配置文件(默认为/etc/ssh/sshd_config),确保如下参数没有显示的置为 no。否则,将参数值修改为yes,或者删除或注释(在最开头添加 # 号)整行配置。

[root@LVS-DR02 .ssh]# vim /etc/ssh/sshd_config
将下面两行的注释取消
#RSAAuthentication yes
#PubkeyAuthentication yes

e)下载私钥到远程计算机(公钥相当于锁,私钥相当于钥匙)

[root@LVS-DR02 .ssh]# sz -y id_rsa

3、客户端的配置

a)如下图所示,进入xshell的登录界面

wKioL1lRAbnyuPlvAACb8kdVwxk421.jpg

b)选择基于Public Key的登录验证方式

wKioL1lRAbrRs6wwAACsEDfpE3Q572.jpg

c)导入key

wKiom1lRAbqymgTFAACpN4hK17Y978.jpg

d)选择导入

wKioL1lRAbuTDX4cAABErvpBmkk104.jpg

e)这里我们将之前从服务端sz -y导入的id_rsa改名为LVS-RS02,主要也是为了对应不同的服务

wKiom1lRAbvQ4gu2AABP35j9RQw881.jpg

f)这样我们就可以很方便的登录到系统中了

wKioL1lRAbuhd9J5AABkR907xa0790.jpg

补充方法:

1)在windows的xshell下生成密钥

wKioL1lUurLhfRZIAACKwboGKkA801.png

2)选择默认的RSA密钥类型,保持密钥长度为2048

wKiom1lUurLgZZ7cAACDYjnAACo113.png

3)生成密钥对的过程

wKioL1lUurPSe0rsAAB6R-yJVvw524.png

4)默认的密钥名称为id_rsa_2048

wKioL1lUurTxhNIwAAB8ODPl6-I306.png

5)为了避免每次登陆输入密码,这里我保持密码为空

wKiom1lUurTjoov8AACQN92GB0M263.png

6)保存复制的公钥

wKiom1lUurWSpJmOAACjDzSDLQA800.png

7)将公钥拷贝到服务端的.ssh目录下

[root@LVS-DR01 .ssh]# cat id_rsa_2048.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzoNEC5+T6dl+p5nD78/SPcqdFPecSNVHF7R6FhY0cxCHDSWUTORU4isGIRJOwmr3o+7kgpY8o4ACw8FgYY2xt3jjFo8t1xlcnKZ4s0VxyqRrVFe4xZa2dGxyaQ6q13Bwno+yE93+nfXK2W1+aBDuouGgaFX2av9lGWJqfzXoHh+yKATF367ErnUBIQbM0N/rPBzggxtyKCHekOu1605Fie/xcQTZJbvm2dkCwMJg1gx2B4qgBKIbLi+Q==[root@LVS-DR01 .s
total 16
-rw------- 1 root root 1675 Jun 29 09:46 id_rsa
-rw-r--r-- 1 root root  380 Jun 29 16:14 id_rsa_2048.pub
-rw-r--r-- 1 root root  409 Jun 29 09:46 id_rsa.pub
-rw-r--r-- 1 root root  976 Jun 29 09:48 known_hosts
[root@LVS-DR01 .ssh]# ls -la
total 20
drwx------   2 root root   80 Jun 29 16:15 .
dr-xr-x---. 18 root root 4096 Jun 29 15:50 ..
-rw-------   1 root root 1675 Jun 29 09:46 id_rsa
-rw-r--r--   1 root root  380 Jun 29 16:14 id_rsa_2048.pub
-rw-r--r--   1 root root  409 Jun 29 09:46 id_rsa.pub
-rw-r--r--   1 root root  976 Jun 29 09:48 known_hosts
将公钥内容保存到authorized_keys文件中,设置文件权限为600
[root@LVS-DR01 .ssh]# cat id_rsa_2048.pub>>authorized_keys
[root@LVS-DR01 .ssh]# chmod 600 authorized_keys

8)登陆验证

wKiom1lUvbCyHEqNAABj07xsrNo747.png

9)使用用户的密钥

wKiom1lUvbGQguh7AAA6GyNqtNA127.png

10)选择身份验证方式

wKioL1lUvbGSUR16AABkLMWlGWo051.png

11)登陆成功

Connecting to 10.10.10.101:2222...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Last login: Thu Jun 29 16:45:21 2017 from 10.10.10.1

到此,所有配置均已完成


12)配置思路

a、生成密钥对:

b、将公钥传输至远程服务器对应的家目录的指定文件

c、进行测试