说明:今天来了一个小伙伴,因为业务需要,要登录一台测试系统,问我密码是多少,我说我配置的密钥登录的,估计他不太熟悉,所以我简单的演示了一下配置过程给他看,顺便也记录了下整个配置过程。
1、关于密钥登录系统的原理
关于配置原理,可以参考https://help.aliyun.com/knowledge_detail/41493.html,现在阿里云的官方文档写的很详细,我也不想粘贴复制了。
2、服务端的配置过程
a)生成密钥对(这里我只是做个测试,所以一路回车就好了)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
[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 image is: +--[ RSA 2048]----+ | .o.. | | o. | | .+ | | ..+E= | | S.= + | | o o + o | | + . . | | ..oo | | .+*o | +-----------------+ |
b)查看密钥的位置(默认存在家目录的.ssh下)*:
1
2
3
4
5
|
[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主机:
1
2
|
把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,或者删除或注释(在最开头添加 # 号)整行配置。
1
2
3
4
|
[root@LVS-DR02 . ssh ] # vim /etc/ssh/sshd_config
将下面两行的注释取消 #RSAAuthentication yes #PubkeyAuthentication yes |
e)下载私钥到远程计算机(公钥相当于锁,私钥相当于钥匙)
1
|
[root@LVS-DR02 . ssh ] # sz -y id_rsa
|
3、客户端的配置
a)如下图所示,进入xshell的登录界面
b)选择基于Public Key的登录验证方式
c)导入key
d)选择导入
e)这里我们将之前从服务端sz -y导入的id_rsa改名为LVS-RS02,主要也是为了对应不同的服务
f)这样我们就可以很方便的登录到系统中了
补充方法:
1)在windows的xshell下生成密钥
2)选择默认的RSA密钥类型,保持密钥长度为2048
3)生成密钥对的过程
4)默认的密钥名称为id_rsa_2048
5)为了避免每次登陆输入密码,这里我保持密码为空
6)保存复制的公钥
7)将公钥拷贝到服务端的.ssh目录下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[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)登陆验证
9)使用用户的密钥
10)选择身份验证方式
11)登陆成功
1
2
3
4
|
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、进行测试