批量给Linux服务器分发公钥

本文介绍了如何生成RSA公钥,并利用expect脚本配合ssh-copy-id命令,实现批量将公钥分发到多个Linux服务器,简化远程登录过程。详细步骤包括公钥生成、expect脚本编辑、主机IP列表准备以及脚本执行。
摘要由CSDN通过智能技术生成
1.公钥的生成
[root@nfs1 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
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:
27:68:04:bf:45:8d:b7:44:a4:a9:18:38:49:07:b7:b4 root@http1
The key's randomart image is:
+--[ RSA 2048]----+
|  o.=   .=o      |
| . * = ..o+      |
|  + E o +o .     |
|   . + =  .      |
|    . = S .      |
|     .   o       |
|                 |
|                 |
|                 |
+-----------------+


2.安装分发使用的软件
[root@nfs1 ~]# yum install expect -y
3.编辑exp文件
Linux中,您可以使用ssh-copy-id命令将公钥复制到远程服务器中,使得您可以无需密码登录该服务器。以下是具体步骤: 1. 在本地生成公私钥对 如果您没有生成过公私钥对,可以使用以下命令在本地生成: ``` ssh-keygen -t rsa -b 4096 ``` 该命令将在本地生成一对RSA公私钥,通常保存在`~/.ssh`目录下,其中`id_rsa`为私钥,`id_rsa.pub`为公钥。 2. 分发公钥服务器 使用`ssh-copy-id`命令将公钥复制到远程服务器中,以下是示例命令: ``` ssh-copy-id -i /path/to/public_key.pub user@server_address ``` 其中,`/path/to/public_key.pub`为您本地公钥文件的路径,`user`为远程服务器的用户名,`server_address`为远程服务器的IP地址或域名。 如果您需要将公钥复制到多服务器上,可以使用以下脚本: ```bash #!/bin/bash # 服务器列表 servers=( "server1" "server2" "server3" ) # 用户名 user="username" # 公钥文件路径 pub_key_file="/path/to/public_key.pub" # 循环分发公钥到每服务器 for server in ${servers[@]}; do ssh-copy-id -i $pub_key_file $user@$server done ``` 在以上脚本中,您需要将`server1`、`server2`、`server3`替换成您需要分发公钥服务器列表,将`username`替换成远程服务器的用户名,将`/path/to/public_key.pub`替换成您本地公钥文件的路径。 3. 连接服务器 完成以上步骤后,您可以使用以下命令连接到服务器,无需再输入密码: ``` ssh user@server_address ``` 其中,`user`为远程服务器的用户名,`server_address`为远程服务器的IP地址或域名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值