RHEL6: 使用 SSH 密钥

今天学习了 RHEL6 SSH 密钥的使用,大体上说和 RHEL5 生成 SSH 密钥 方法相同,稍微还是有点区别,演示如下。

1 环境信息
IP: 192.168.1.36 主机名 redhat6
IP: 192.168.1.35 主机名 redhatB
备注:笔记本上跑了两台 RHEL6 虚拟机,目标在主机 redhat6 上能够 ssh postgres@192.168.1.36 并且不输入密码。

2 密钥生成
以 postgres 用户登陆主机 redhat6,使用 ssh-keygen 生成公钥和私钥。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[postgres@redhat6 .ssh]$ cd ~/.ssh  
[postgres@redhat6 .ssh]$ pwd
/home/postgres/.ssh
[postgres@redhat6 .ssh]$ lltotal 4.0K
-rw-r--r--. 1 postgres postgres 394 Jul 22 17:41 known_hosts

[postgres@redhat6 .ssh]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/postgres/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/postgres/.ssh/id_rsa.
Your public key has been saved in /home/postgres/.ssh/id_rsa.pub.
The key fingerprint is:
a5:ed:54:bd:dd:2b:a8:b2:7e:bd:09:d7:5b:9d:40:29 [postgres@redhat6](mailto:postgres@redhat6)
The keys randomart image is:
+--[ RSA 2048]----+
| |
| .. |
| .E.o. |
| + .o o.|
| S o .. o|
| o o . +|
| .oo o +.|
| . .+.. + |
| .o+. o.. |
+-----------------+

[postgres@redhat6 .ssh]$ ll
total 12K
-rw-------. 1 postgres postgres 1.7K Jul 22 17:44 id_rsa
-rw-r--r--. 1 postgres postgres 398 Jul 22 17:44 id_rsa.pub
-rw-r--r--. 1 postgres postgres 394 Jul 22 17:41 known_hosts

备注:执行完 ssh-keygen 后,在目录 ~/.ssh/下产生 id_rsa 和 id_rsa.pub 密钥其中 id_rsa 为私钥,id_rs.pub 为公钥,可以将公钥分发到任何一台主机,从而 ssh 登陆时不用输入密码。

3 将公钥发送到主机 redhatB

1
2
3
4
5
6
[postgres@redhat6 .ssh]$ ssh-copy-id -i id_rsa.pub postgres@192.168.1.36
postgres@192.168.1.36's password:
Now try logging into the machine, with "ssh 'postgres@192.168.1.36'", and check in:
.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

备注:这里使用命令 ssh-copy-id 将公钥 id_rsa.pub 发送到目标主机,默认使用的是 ~/.id_rsa.pub 公钥,也可以使用 -i 参数指定密钥。

4 测试
在主机 redhat6 上以 postgres 用户连接到 redhatB 上测试。

1
2
3
[postgres@redhat6 .ssh]$ ssh postgres@192.168.1.36
[postgres@redhatB ~]$ hostname
redhatB

备注:在主机 redhat6 上以 postgres 用户连接到 redhatB 上果然不需要输入密码。

最后推荐和张文升共同编写的《PostgreSQL实战》,本书基于PostgreSQL 10 编写,共18章,重点介绍SQL高级特性、并行查询、分区表、物理复制、逻辑复制、备份恢复、高可用、性能优化、PostGIS等,涵盖大量实战用例!

购买链接:https://item.jd.com/12405774.html

PostgreSQL实战
感谢支持!
0%