20台服务器互相免密登录的配置方法

image

直接服务器上操作 

ssh-keygen -t rsa -b 4096 -C "cluster-keys" -f ~/.ssh/cluster_key -N ""

  • -t rsa: 使用RSA算法

  • -b 4096: 密钥长度4096位

  • -N "": 空密码短语

image 

image

 

#!/bin/bash

USER="root" # 根据实际情况修改用户名
SSH_KEY="${HOME}/.ssh/cluster_key"
KNOWN_HOSTS="${HOME}/.ssh/known_hosts"

# 清空known_hosts文件
> $KNOWN_HOSTS

# 遍历服务器列表分发密钥
while read server; do
if [[ -z "$server" || "$server" =~ ^# ]]; then
continue
fi

echo "正在处理服务器: $server"

# 扫描并接受主机密钥
ssh-keyscan $server >> $KNOWN_HOSTS 2>/dev/null

# 分发公钥
ssh-copy-id -i $SSH_KEY.pub $USER@$server

if [ $? -eq 0 ]; then
echo "✓ 成功配置 $server"
else
echo "✗ 配置 $server 失败"
fi
echo "----------------------------------------"
done < server_list.txt

echo "所有服务器配置完成!"

image

image

 

cat > ~/.ssh/config << EOF
Host *
StrictHostKeyChecking yes
UserKnownHostsFile ~/.ssh/known_hosts
IdentitiesOnly yes
ServerAliveInterval 60
ServerAliveCountMax 3
ConnectTimeout 10
EOF

posted @ 2025-11-07 14:32  疯狂的米粒儿  阅读(0)  评论(0)    收藏  举报