如何使用脚本为多个远程服务器设置无密码SSH登录
【小Y提示】文章部分内容源于网络收集整理,不代表本站观点!若有了解“如何使用脚本为多个远程服务器设置无密码SSH登录”等有关服务器、云主机租用、托管、配置、价格问题,请咨询YINGSOO客服,为您答疑解惑!
【热门搜索】台湾CN2服务器 | 服务器IPLC国际专线 | 日本CN2服务器
【优质文章】YINGSOO台湾CN2服务器已上线官网
基于SSH密钥的认证可以实现无密码认证,它是一种更安全,比密码认证更好的解决方案。SSH无密码登录的一大优势,先不说安全性,它可以实现各种跨服务器的自动化处理也是非常便捷的一个应用。
在本文中,我们将通过一个shell脚本来演示如何创建SSH密钥对,并一次性将公钥复制到多台远程Linux主机上。
1、在Linux中创建新的SSH密钥
首先,使用ssh-keygen命令生成SSH密钥对(SSH客户端在登录远程SSH服务器时用来验证自己的私有/身份密钥,以及作为授权密钥存储在运行SSH服务器的远程系统上的公钥),如下所示。
# ssh-keygen
2、创建用于多个远程登录的Shell脚本
接下来,创建一个shell脚本,帮助将公钥复制到多个远程Linux主机上。
# vim ~/.bin/ssh-copy.sh
复制并粘贴以下代码到文件中(相应地替换以下变量 USER_NAME - 要连接的用户名,HOST_FILE - 包含主机名或 IP 地址列表的文件,ERROR_FILE - 存储任何 ssh 命令错误的文件)
#!/bin/bash
USER_NAME="root"
HOST_FILE="/root/hosts"
ERROR_FILE="/tmp/ssh-copy_error.txt"
PUBLIC_KEY_FILE="$1"
if [ ! -f $PUBLIC_KEY_FILE ]; then
echo "File '$PUBLIC_KEY_FILE' not found!"
exit 1
fi
if [ ! -f $HOST_FILE ]; then
echo "File '$HOST_FILE' not found!"
exit 2
fi
for IP in `cat $HOST_FILE`; do
ssh-copy-id -i $PUBLIC_KEY_FILE $USER_NAME@$IP 2>$ERROR_FILE
RESULT=$?
if [ $RESULT -eq 0 ]; then
echo ""
echo "Public key successfully copied to $IP"
echo ""
else
echo "$"
echo
exit 3
fi
echo ""
done
保存文件并关闭它。
然后使用chmod命令使脚本可执行,如下所示。
# chmod +x ssh-copy.sh
现在运行ssh-copy.sh脚本,并将公共密钥文件指定为第一个参数,如下所示:
# ./ssh-copy.sh /root/.ssh/prod-rsa.pub
接下来,使用ssh-agent来管理您的密钥,该密钥将您解密的私钥保存在内存中,并使用它来验证登录名。启动后ssh-agent,按如下所示将您的私钥添加到其中:
# eval "$"
# ssh-add ~/.ssh/prod_rsa
3、登录到没有密码的远程Linux服务器
现在,您无需提供用于SSH用户身份验证的密码即可登录任何远程主机。这样,您可以自动化跨服务器进程。
# ssh root@10.24.20.34
至此,本文使用用脚本为多个远程服务器设置无密码SSH登录就结束了,希望对您有用。
热门节点:香港服务器租用去首页注册领券!YINGSOO推出Phala挖矿服务器、Chia奇亚农场服务器、Swarm物理节点服务器、Swarm母鸡服务器、Swarm云节点服务器、国内矿机服务器海外托管、《Phala PHA挖矿资料大全》,《swarm bzz挖矿资料大全》,Swarm Bee节点租用请咨询YINGSOO客服!官网WWW.YINGSOO.com
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。