linux给不同密码服务器分发公钥
时间: 2023-08-06 18:05:25 浏览: 40
在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地址或域名。