服务器之间免密登录
创始人
2024-04-03 19:34:37
0

服务器之间免密登录

一、简便方法

1、所有服务器执行

mkdir -p  /root/.ssh
cd /root/.ssh
ssh-keygen -t rsa 
chmod 700 /root/.ssh

2、将本机的公钥拷贝到其他机器上

输入yes

输入对方服务器密码

192.168.56.100

ssh-copy-id root@192.168.56.101

192.168.56.101

ssh-copy-id root@192.168.56.100

二、让服务器A实现免密登录自己

1、在A服务器中指定的位置(/root/.ssh)生成私钥id_rsa和公钥id_rsa.pub;
在服务器A操作

mkdir -p  /root/.ssh
cd /root/.ssh
ssh-keygen -t rsacat id_rsa.pub >> authorized_keysscp id_rsa.pub root@192.168.56.101:/tmpssh root@192.168.56.101mkdir -p /root/.ssh
cd /root/.ssh
cat /tmp/id_rsa.pub >> authorized_keys

2、在B服务器中指定的位置(/root/.ssh)生成私钥id_rsa和公钥id_rsa.pub;
在服务器B操作

mkdir -p  /root/.ssh
cd /root/.ssh
ssh-keygen -t rsacat id_rsa.pub >> authorized_keysscp id_rsa.pub root@192.168.56.100:/tmpssh root@192.168.56.100mkdir -p /root/.ssh
cd /root/.ssh
cat /tmp/id_rsa.pub >> authorized_keys

三、最终脚本

配置下面的ip 密码
执行下面的脚本

配置需要

在192.168.56.100 执行下面的脚本后,所有配置的都可以互免密了

#设置要登入的节点ip地址

NOW_IP=“192.168.56.100”
所有服务器的ip
HOST_IP_NODE=(“192.168.56.100” “192.168.56.101” “192.168.56.102”)
所有服务器对应的密码
HOST_PASS_NODE=(“123456” “123456” “123456”)

#!/bin/shCURRENT_DIR=$(cd "$(dirname "$0")"pwd
)#///
# 使用方法
# 配置下面的NOW_IP HOST_IP_NODE  HOST_PASS_NODE
# 执行该脚本,然后登录测试一下即可
#---------------设置ssh免密登入对台设备---------------#
# 设置要登入的节点ip地址
# 当前执行脚本服务器的ip
NOW_IP="192.168.56.100"
# 所有服务器的ip
HOST_IP_NODE=("192.168.56.100" "192.168.56.101" "192.168.56.102")
# 所有服务器对应的密码
HOST_PASS_NODE=("123456" "123456" "123456")sed -i -e "s/StrictHostKeyChecking/#StrictHostKeyChecking/g" /etc/ssh/ssh_config#本机ip
native_ip=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1')
echo "【本机ip】$native_ip"#安装expect软件包
# yum install expect -y# 下载离线rpm yumdownloader --resolve expect
rpm -Uvh --force --nodeps *.rpm
expect << EOF
set timeout 5
spawn ssh-keygen -t rsa
expect "id_rsa):" 
send "\r" 
expect "passphrase):" 
send "\r"
expect "again:"
send "\r" 
expect eof
EOFcopy_id(){
expect << EOF
set timeout 5
spawn ssh-copy-id $1
expect "(yes/no)?" 
send "yes\r"
expect "password:" 
send "$2\r" 
expect eof
EOF
}#循环遍历
num=${#HOST_IP_NODE[*]}
fun(){for((i=0;i<$num;i++));doif [ ${HOST_IP_NODE[i]} == $native_ip ]thenecho "本机不做操作"elsecopy_id root@${HOST_IP_NODE[i]} ${HOST_PASS_NODE[i]}if [ $NOW_IP == $native_ip ]thenecho "$native_ip 远程操作 "echo "ssh ${HOST_IP_NODE[i]} \"rm -rf /root/sshNoPwd\""ssh ${HOST_IP_NODE[i]} "rm -rf /root/sshNoPwd"scp -r $CURRENT_DIR root@${HOST_IP_NODE[i]}:/root
ssh ${HOST_IP_NODE[i]} 'bash -s' <<'ENDSSH'
chmod +x /root/sshNoPwd/sshNoPwd.sh
cd /root/sshNoPwd
./sshNoPwd.sh
ENDSSHfifidone}
fun

相关内容

热门资讯

【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
【前端】‘??‘与‘||‘有什... 0 问题 经常写const data = res.data.a ?? ''或者const d...
ChatGPT 怎么用最新详细... ChatGPT 以其强大的信息整合和对话能力惊艳了全球,在自然语言处理上面表现出了惊人...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...