ssh互信

要在三台Linux主机之间配置SSH互信,可以按照以下步骤进行操作:

  1. 确保每台主机上都已安装了OpenSSH服务器和客户端。可以使用以下命令检查是否已安装:
ssh -V

如果未安装,请根据操作系统的不同使用适当的包管理器进行安装。例如,在Ubuntu上可以使用以下命令安装:

sudo apt-get install openssh-server openssh-client
  1. 在每台主机上生成SSH密钥对。使用以下命令在每台主机上生成密钥对:
ssh-keygen

默认情况下,密钥对将生成在~/.ssh/目录下,并包括公钥(id_rsa.pub)和私钥(id_rsa)。

  1. 将每台主机的公钥添加到其他两台主机的已授权密钥列表中。可以使用ssh-copy-id命令将公钥复制到其他主机上。例如,假设我们要将HostA的公钥复制到HostBHostC上,可以执行以下命令:
ssh-copy-id user@HostB
ssh-copy-id user@HostC

上述命令将提示输入目标主机的用户密码。输入密码后,HostA的公钥将自动添加到HostBHostC上的授权密钥列表中。

  1. 现在,应该可以在这三台主机之间通过SSH进行无密码登录了。例如,从HostA登录到HostB,只需执行以下命令:
ssh user@HostB

此时,将无需输入密码即可登录到HostB

重复以上步骤,将每台主机的公钥复制到其他主机上,以便在所有主机之间实现SSH互信。确保在复制公钥时使用正确的用户名和主机名。

!/bin/bash

配置SSH互信的用户名

USERNAME="your_username"

配置SSH互信的服务器列表

SERVERS=("server1" "server2" "server3")

生成SSH密钥对

generate_ssh_key() {
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
}

复制公钥到其他服务器

copy_public_key() {
for server in "${SERVERS[@]}"; do
ssh-copy-id -i ~/.ssh/id_rsa.pub "$USERNAME@$server"
done
}

主函数

main() {
generate_ssh_key
copy_public_key
}

main

posted @ 2023-06-08 14:17  浮游之人  阅读(912)  评论(0)    收藏  举报