帮我写一个脚本,批量配置用户免密登录,可以指定端口、各主机用户、以及密码
时间: 2024-01-09 21:04:38 浏览: 29
好的,以下是一个可以指定端口、各主机用户、以及密码的脚本:
```bash
#!/bin/bash
# 读取要配置免密登录的用户名和主机名
read -p "请输入要配置免密登录的用户名: " username
read -p "请输入要配置免密登录的主机名: " hostname
read -p "请输入要配置免密登录的端口号: " port
read -s -p "请输入要配置免密登录的用户密码: " password
# 在本地机器上生成 SSH 密钥对
ssh-keygen -t rsa
# 将公钥复制到目标主机上
sshpass -p $password ssh-copy-id -i ~/.ssh/id_rsa.pub -p $port $username@$hostname
# 验证免密登录是否配置成功
ssh $username@$hostname -p $port
```
使用方法:
1. 将脚本保存为 `ssh-login.sh` 文件;
2. 执行命令 `chmod +x ssh-login.sh`,给脚本添加执行权限;
3. 执行命令 `./ssh-login.sh`,按照提示输入要配置免密登录的用户名、主机名、端口号、以及用户密码。
注意事项:
1. 执行脚本之前,请确保已经安装了 SSH 和 sshpass;
2. 在执行 `ssh-copy-id` 命令时,需要使用 sshpass 命令指定密码,因此需要提前安装 sshpass;
3. 在输入密码时,命令行不会显示密码,但是已经输入,可以直接按回车键。
相关问题
帮我写一个脚本,批量配置用户免密登录
好的,以下是一个简单的脚本,可以批量配置用户免密登录:
```bash
#!/bin/bash
# 读取要配置免密登录的用户名和主机名
read -p "请输入要配置免密登录的用户名: " username
read -p "请输入要配置免密登录的主机名: " hostname
# 在本地机器上生成 SSH 密钥对
ssh-keygen -t rsa
# 将公钥复制到目标主机上
ssh-copy-id $username@$hostname
# 验证免密登录是否配置成功
ssh $username@$hostname
```
使用方法:
1. 将脚本保存为 `ssh-login.sh` 文件;
2. 执行命令 `chmod +x ssh-login.sh`,给脚本添加执行权限;
3. 执行命令 `./ssh-login.sh`,按照提示输入要配置免密登录的用户名和主机名。
注意事项:
1. 执行脚本之前,请确保已经安装了 SSH;
2. 在执行 `ssh-copy-id` 命令时,可能需要输入目标主机的密码。
帮我写一个脚本,配置其余主机的免密登录,可指定登录用户和端口
好的,以下是一个简单的脚本,可以实现配置其余主机的免密登录,可以指定登录用户和端口:
```bash
#!/bin/bash
# 定义远程主机列表
hosts=("remote_host1" "remote_host2" "remote_host3")
# 定义登录用户名
username="your_username"
# 定义登录端口号
port="22"
# 生成 SSH 密钥
ssh-keygen -t rsa
# 循环遍历远程主机列表,将公钥复制到其 authorized_keys 文件中
for host in ${hosts[@]}
do
ssh-copy-id -i ~/.ssh/id_rsa.pub -p $port $username@$host
done
```
在该脚本中,我们首先定义了要配置免密登录的远程主机列表,以及登录用户名和端口号。然后,我们使用 `ssh-keygen` 命令生成 SSH 密钥,然后循环遍历远程主机列表,使用 `ssh-copy-id` 命令将公钥复制到远程主机的 `authorized_keys` 文件中,从而实现免密登录。
你可以将该脚本保存为一个文件,比如 `setup-ssh.sh`,然后在终端中运行该脚本即可。记得要将脚本中的用户名和主机列表替换成你自己的信息。