【案例skills.com】SSH 使用 FQDN 免密登录

所有 linux 主机 root 用户使用完全合格域名免密码 ssh 登录到其他 linux 主机。linux 主机的 FQDN 为: server1.skills.com  ~  server7.skills.com。

在动手配置之前,需要了解要使用 FQDN 来登录,IP 信息的设置以及可用的 DNS 服务是前置必须完成的任务。不会配置 DNS 的同学可以用修改 /etc/hosts 文件来代替:),不会配置 IP 信息的同学,你可以先暂时离开本篇文章去追求更有意义的梦想。(记得常回来看看,说不定会有介绍 IP 信息配置的文章等着你)。

SSH服务的免密登录是使用非对称加密技术来实现,提供该技术的常用算法为 RSA 或 3DES 等,在配置前需要为所有服务器生成各自的密钥对(私钥和公钥)。工具 ssh-keygen 可以帮助产生密钥对,在生成密钥对的过程中,密钥的保存位置可以保持默认,密钥的密码可以为空。生成后密钥存放位置为 /root/.ssh/ 下,id_rsa 为私钥,id_rsa.pub 为公钥。过程如下:

# 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:
SHA256:1/7+Y2pyC2zR2j8Y7VOU2clJAeYGsRiJc6RuuGRiHGM root@localhost.localdomain
The key's randomart image is:
+---[RSA 3072]----+
|        oo.o.o...|
|       o.oo =  . |
|   E   .o. . oo *|
|  o o o    .o  *o|
|   + + oS ...... |
|  . + o  ...+. ..|
|     .     =..+ .|
|          ...=.* |
|            ++*o=|
+----[SHA256]-----+
#

使用工具 ssh-copy-id 将 Client 的相关消息以及公钥通过身份验证发送给 Server,在本次案例中需要获得 Server 的 root 账户密码以及 Server 的 FQDN。操作如下:

# ssh-copy-id root@linux1.skills.com
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'linux1.skills.com (10.10.10.101)' can't be established.
ECDSA key fingerprint is SHA256:pXK3nvepVyhdGay8CosaSFdZDPVF0y6+/Fy7GMvVaLM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@linux1.skills.com's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@linux1.skills.com'"
and check to make sure that only the key(s) you wanted were added.

#

完成后,在 Server 上会产生一个文件 /root/.ssh/authorized_keys,其内容为:ssh非对称加密类型,Client 的公钥,Client 登录使用的信息(例如 root@linux1.skills.com)。而在 Client 上也会产生一个文件 /root/.ssh/known_hosts,其内容为:Server 的连接消息(例如:linux1.skills.com),非对称加密算法,Server 的公钥。至此 Client 就可以通过 FQDN 使用 root 账户免密登录到 Server 上了。


简单的实验到此就结束了,但是如果要为了符合最初的需求,代价又是什么呢:在每台服务器上都要使用上述方法( ssh-copy-id )对其他服务器进行一次免密登录配置,共计42次工作量巨大。

因此为了更快速地、不择手段地、满足要求地达成目的,下面我们将采用一个较不安全的方法来完成这个目标,即所有服务器使用相同的密钥对

1.上述内容依然需要配置一边,在 linux1 上产生密钥对,使用 ssh-copy-id 对 linux1 进行免密登录的配置,得到 authorized_keys 和 known_hosts 文件。

2.分别对 2 个文件中的记录进行就该,在此复制 6 遍共计 7 条记录,并且修改新复制出来的 6 条记录中的 FQDN 内容为其他服务器所对应的 FQDN。

3.将 linux1 的 /root/.ssh/目录下的所有内容分发到其他服务器的 /root/.ssh/ 目录下(注意目录权限)。

4.生产环境中严禁采用上述操作!生产环境中严禁采用上述操作!生产环境中严禁采用上述操作!重要的事情说三遍。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值