Shell脚本实现批量SSH免交互登录主机,让远程管理更高效

在日常的工作中,我们可能需要同时管理多个服务器或者虚拟机,这时候需要频繁地进行SSH登录操作。而每次输入密码、IP地址等信息都会浪费大量的时间和精力,给工作带来不小的困扰。为了解决这个问题,我们可以使用Shell脚本实现批量SSH免交互登录主机。这样一来,在管理多台服务器时就能够更加轻松、高效地进行操作了。下面就让我们一起来看看如何使……

在日常的工作中,我们可能需要同时管理多个服务器或者虚拟机,这时候需要频繁地进行SSH登录操作。而每次输入密码、IP地址等信息都会浪费大量的时间和精力,给工作带来不小的困扰。

为了解决这个问题,我们可以使用Shell脚本实现批量SSH免交互登录主机。这样一来,在管理多台服务器时就能够更加轻松、高效地进行操作了。

下面就让我们一起来看看如何使用Shell脚本实现批量SSH免交互登录主机吧。

1. 创建密钥对

首先,我们需要在自己的电脑上创建一个密钥对。这里以Linux系统为例:

“`bash

ssh-keygen -t rsa

“`

执行上述命令后会提示你输入保存路径和密码等信息。如果不想设置密码可以直接按回车键跳过。

2. 将公钥添加到目标主机

接下来,在自己电脑上找到刚刚生成的公钥文件(默认是~/.ssh/id_rsa.pub),将其内容复制到目标主机上:

ssh-copy-id user@hostname

其中user代表目标主机用户名,hostname代表目标主机IP地址或者域名。

执行上述命令后,会要求你输入目标主机的密码。输入正确的密码后,公钥就会被添加到目标主机的authorized_keys文件中。

3. 编写Shell脚本

现在我们已经成功地将公钥添加到了目标主机上,接下来就可以编写Shell脚本实现批量SSH免交互登录了。

#!/bin/bash

Shell脚本实现批量SSH免交互登录主机,让远程管理更高效

# 定义变量

user=”root”

password=”123456″

# 循环遍历IP地址列表

for ip in `cat ip.txt`

do

# 远程执行命令,并输出结果

sshpass -p $password ssh $user@$ip “ls /”

done

在上述代码中,我们首先定义了两个变量:user和password。这里默认使用root用户进行登录,并设置密码为123456。如果你需要修改用户名和密码,请自行更改变量值即可。

接着,在循环遍历IP地址列表时,我们使用sshpass工具实现免交互式登录。其中-p参数用于指定密码,ssh命令用于远程执行指定的命令(这里是ls /),$ip表示当前循环到的IP地址。

4. 执行Shell脚本

当我们编写好Shell脚本之后,就可以直接运行它了:

sh ssh.sh

此时,程序会自动遍历ip.txt文件中列出的所有IP地址,并远程连接对应主机执行指定命令。如果一切正常,你应该可以看到每个主机上的根目录文件列表。

综上所述,使用Shell脚本实现批量SSH免交互登录主机可以让我们更加高效地管理多台服务器或者虚拟机。通过上述方法,我们可以轻松地实现远程登录和操作,避免了频繁输入密码等烦琐步骤带来的时间浪费。

最后附上TAGS:Shell脚本、SSH、批量操作、远程管理、免交互登录