批量设置ssh无密码登陆脚本

简介: 最近要给集群设置ssh无密码登陆,如果需要手动设置这个无密码登陆,所以在网上找了几个脚本,亲测下面这个好使,并且设置比较简单。
最近要给集群设置ssh无密码登陆,如果需要手动设置这个无密码登陆,所以在网上找了几个脚本,亲测下面这个好使,并且设置比较简单。
需要用root账户执行,我也是要给root账户设置无密码登陆。
首先我们要创建密码,执行下面这句命令:
ssh-keygen -t rsa
脚本如下:我们仅仅需要修改的就是node=()里面的主机名就可以了,当前前提是你必须在/etc/hosts 配置了。
#!/bin/bash
node=(hadoop.Master hadoop.SlaveT1 hadoop.SlaveT2)  # hostname for each node
username=root            # username to be interconnected
homename=$username        # home dir, i.e. home/zhangyang
if [ "$username" = "root" ];
then
        homename=root
else
        homename=home/$username
fi

for((i=0; i<${#node[*]}; i++))
do
        ssh $username@${node[i]} 'ssh-keygen -t rsa; chmod 755 ~/.ssh'
done
#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

echo "batch authorized_keys created..."
echo "start scp..."

#scp node003:/$homename/.ssh/authorized_keys /$homename/.ssh/node003.key
for((i=0; i<${#node[*]}; i++))
do
        scp ${node[i]}:/$homename/.ssh/id_rsa.pub /$homename/.ssh/${node[i]}.key
        echo "scp from ${node[i]} finished..."
done

echo "append key to authorized_keys..."
for((i=0; i<${#node[*]}; i++))
do
        cat /$homename/.ssh/${node[i]}.key >> /$homename/.ssh/authorized_keys
        echo "append ${node[i]}.key finished..."
done

echo "append all key finished..."
loop=${#node[*]}
let subloop=loop-1
echo "starting scp complete authorized_keys to ${node[1]}~${node[subloop]}"
for((i=1; i<${#node[*]}; i++))
do
        scp /$homename/.ssh/authorized_keys ${node[i]}:/$homename/.ssh/authorized_keys
        echo "scp to ${node[i]} finished..."
done
echo "scp all nodes finished..."

# delete intermediate files
rm -rf /$homename/.ssh/*.key
echo "all configuration finished..."
然后给脚本授予执行的权限 chmod +x  batchSSH.sh
然后执行./batchSSh.sh
当然这个脚本也有缺陷,它需要自己手动输入密码,如果节点多的话,还是很痛苦的,不过还好啦,比起自己手动搞的话,好多了,谁叫我不懂shell呢,哈哈!

目录
相关文章
|
3月前
|
安全 Shell Linux
ssh密码忘记了怎么办
通过上述措施,不仅能够有效应对SSH密码遗忘的挑战,还能全方位加固SSH连接的安全,确保数据传输的无忧。
145 2
|
3月前
|
大数据 网络安全 数据安全/隐私保护
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
176 5
|
3月前
|
XML 大数据 网络安全
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
83 4
|
3月前
|
安全 Shell 网络安全
设置 码云 SSH 推送和拉取代码
设置 码云 SSH 推送和拉取代码
115 0
|
5月前
|
网络安全
mac下通过ssh脚本实现免账号密码连接运服务器
mac下通过ssh脚本实现免账号密码连接运服务器
61 3
|
5月前
|
安全 Shell 网络安全
告别繁琐密码,一键解锁GitHub高效秘籍!SSH配置大揭秘,让你的代码托管之旅飞起来!
【8月更文挑战第4天】在使用GitHub时,频繁输入账号密码颇为不便。采用SSH协议可提升安全性并简化流程。本文以问答形式指导你快速配置GitHub SSH:了解SSH优势、学会生成与添加SSH密钥及测试连接。通过简单的步骤,即可实现无缝代码推送与拉取,享受高效、安全的开发体验。记得保护好私钥并根据需要设置多个密钥对。
80 7
|
5月前
|
安全 Linux Shell
Linux系统之间实现免密码登录(SSH无密码登录
【8月更文挑战第21天】要在Linux系统间实现SSH免密码登录,需先在源机器生成SSH密钥对,然后将公钥复制到目标机器的`.ssh/authorized_keys`文件中。可通过`ssh-keygen`命令生成密钥,并使用`ssh-copy-id`命令传输公钥。最后测试SSH连接,确保能无密码登录。若目标机器缺少相关目录或文件,需手动创建并设置适当权限。完成这些步骤后,即可实现安全便捷的免密码登录。
249 0
|
6月前
|
Shell 网络安全
shell脚本 配饰ssh
【7月更文挑战第15天】
51 4
|
6月前
|
网络安全 数据安全/隐私保护
服务器密码登录出现了:SSH connection failed: connect ECONNREFUSEDxxxxxxxx:22 * Xshell提示 SSH connection fa
服务器密码登录出现了:SSH connection failed: connect ECONNREFUSEDxxxxxxxx:22 * Xshell提示 SSH connection fa
|
6月前
|
安全 Linux 网络安全
ssh中的密码登录和密钥登录
ssh中的密码登录和密钥登录
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等