怎么使用脚本为多个远程服务器设置无密码SSH登录

 2023-12-25  阅读 6  评论 0

摘要:基于SSH密钥的认证(又称公钥认证)可以实现无密码认证,它是一种更安全,比密码认证更好的解决方案。SSH无密码登录的一大优势,先不说安全性,它可以实现各种跨服务器的自动化处理也是非常便捷的一个应用。 在本文中,我们将通过一个shell脚本来演示如何创建SSH密钥对,并一次

怎么使用脚本为多个远程服务器设置无密码SSH登录

基于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 "$(cat  $ERROR_FILE)"

                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-agent -s)"

# ssh-add  ~/.ssh/prod_rsa

3、登录到没有密码的远程Linux服务器

现在,您无需提供用于SSH用户身份验证的密码即可登录任何远程服务器。这样,您可以自动化跨服务器进程。

# ssh root@10.24.20.34

至此,本文使用用脚本为多个远程服务器设置无密码SSH登录就结束了,希望对您有用。

注意:现在服务器报价出炉,价格很低

1、腾讯云:限时 2860 元无门槛代金券:点击一键领取。

2、腾讯云最新优惠活动,3年/5年服务器限时抢购:点击前往。

3、阿里云:限时 2000 元无门槛代金券:点击一键领取。

提示:现在腾讯云新人点击注册然后实名认证后,可以点此一键领取2860元代金券,然后点此进入腾讯云活动页面参加优惠力度非常大的腾讯云3年和5年时长服务器活动,一次性买多年,免得续费贵,这样就可以获得最大的优惠折扣,省钱。

版权声明:xxxxxxxxx;

原文链接:https://lecms.nxtedu.cn/yunzhuji/152014.html

发表评论:

验证码

管理员

  • 内容1196554
  • 积分0
  • 金币0
关于我们
lecms主程序为免费提供使用,使用者不得将本系统应用于任何形式的非法用途,由此产生的一切法律风险,需由使用者自行承担,与本站和开发者无关。一旦使用lecms,表示您即承认您已阅读、理解并同意受此条款的约束,并遵守所有相应法律和法规。
联系方式
电话:
地址:广东省中山市
Email:admin@qq.com
注册登录
注册帐号
登录帐号

Copyright © 2022 LECMS Inc. 保留所有权利。 Powered by LECMS 3.0.3

页面耗时0.0126秒, 内存占用357.28 KB, 访问数据库18次