写一个批量传输密钥的脚本,实现免密登陆
时间: 2024-05-15 21:14:43 浏览: 89
很高兴能够回答你的问题。关于你的问题,我可以给你一些建议和指导。
如果你想批量传输密钥,实现免密登陆,你可以使用 SSH 的公钥认证机制。具体来说,你需要在远程主机上生成一个密钥对:一个私钥和一个公钥。私钥存放在你的本地主机上,公钥则复制到需要免密登录的远程主机上。
具体步骤如下:
1. 在本地主机上生成密钥对:
ssh-keygen -t rsa
这个命令会在 ~/.ssh 目录下生成一个私钥(id_rsa)和一个公钥(id_rsa.pub)。
2. 将公钥复制到远程主机上:
ssh-copy-id username@remote_host
这个命令会将你本地主机上的公钥复制到远程主机上,并将其添加到远程主机上的 authorized_keys 文件中。在复制前,你需要输入远程主机的密码。
3. 测试免密登录:
ssh username@remote_host
如果一切正常,你应该可以直接登录到远程主机上,而不需要输入密码。
如果你要批量传输密钥,可以编写一个 shell 脚本来自动化这个过程。具体来说,你可以使用 sshpass 这个工具来自动输入密码,并使用 for 循环来遍历多个远程主机。示例代码如下:
```
#!/bin/bash
# Define the password
PASSWORD="your_password"
# Define the remote hosts
HOSTS=(
"remote_host_1"
"remote_host_2"
"remote_host_3"
)
# Loop over the hosts and copy the public key
for HOST in "${HOSTS[@]}"; do
sshpass -p "${PASSWORD}" ssh-copy-id "${HOST}"
done
```
当然,在实际使用中,你需要根据自己的情况来修改这个脚本。同时,也需要确保你的密码是安全的,不要将其暴露在脚本中或在不安全的地方存储。
阅读全文
相关推荐


















