首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用循环ssh多个服务器,但如果一个用户失败,请尝试另一个用户

循环SSH(Secure Shell)是一种通过网络远程登录和管理多个服务器的方法。当需要在多个服务器上执行相同的操作时,循环SSH可以提高效率。如果一个用户登录失败,可以尝试使用另一个用户来登录服务器。

以下是使用循环SSH多个服务器并尝试另一个用户的步骤:

  1. 配置SSH密钥认证:首先,确保你的本地计算机上已生成SSH密钥对。使用ssh-keygen命令生成密钥对,并将公钥(通常是~/.ssh/id_rsa.pub文件)复制到要访问的每个服务器的~/.ssh/authorized_keys文件中。
  2. 创建一个包含服务器列表的文本文件:在本地计算机上创建一个文本文件,列出要连接的服务器的IP地址或主机名。每行一个服务器。
  3. 编写一个循环SSH脚本:使用你熟悉的编程语言(如Python、Shell脚本等)编写一个循环SSH脚本。该脚本将读取服务器列表文件,并依次连接每个服务器。
  4. 尝试登录不同的用户:在循环SSH脚本中,可以使用条件语句来检查每个用户的登录是否成功。如果一个用户登录失败,可以尝试使用另一个用户。
  5. 执行命令或操作:在循环SSH脚本中,可以执行需要在每个服务器上执行的命令或操作。例如,可以使用SSH命令执行远程命令,或使用SCP命令传输文件。

以下是一个简单的Python脚本示例,演示了如何使用循环SSH多个服务器并尝试另一个用户:

代码语言:python
代码运行次数:0
复制
import paramiko

servers = ['server1', 'server2', 'server3']
users = ['user1', 'user2', 'user3']
passwords = ['password1', 'password2', 'password3']

for server in servers:
    for i in range(len(users)):
        try:
            ssh = paramiko.SSHClient()
            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            ssh.connect(server, username=users[i], password=passwords[i])
            # 执行命令或操作
            stdin, stdout, stderr = ssh.exec_command('ls')
            print(stdout.read().decode())
            ssh.close()
            break  # 如果成功登录,跳出内层循环
        except paramiko.AuthenticationException:
            print(f"Failed to login to {server} with user {users[i]}")
        except paramiko.SSHException as e:
            print(f"SSH error: {e}")

在上面的示例中,servers列表包含要连接的服务器,userspasswords列表分别包含要尝试的用户和密码。循环SSH脚本将依次尝试每个用户登录每个服务器,如果登录成功,则执行ls命令并打印输出。

请注意,这只是一个简单的示例,实际使用中可能需要根据具体情况进行修改和改进。另外,该示例使用了Paramiko库来进行SSH连接和操作,你可以根据自己的喜好选择其他SSH库或工具。

希望这个答案对你有帮助!如果你需要更多关于云计算或其他相关主题的信息,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在CentOS上使用双重身份验证

即使您的TOTP在发送到服务器时被截获,它也会在您登录后失效。 以下说明将允许您指定要为其生成密码的用户。如果要为多个用户配置双重身份验证,请对每个用户执行以下步骤。...值得注意的是,URI这行开头的密钥为您提供了一个十六进制代码,您可以使用它来手动配置设备上的代码。您还会在包含用户名的行上看到另一个十六进制代码。...请仔细阅读本教程中的以下部分,以获取有关如何对所有SSH登录尝试进行双重身份验证的说明。 配置身份验证设置 本教程中的TOTP身份验证方法使用PAM或可插入身份验证模块。...因为您正在使用其他软件,所以您需要配置PAM以正确验证用户身份。 警告 强烈建议您在配置身份验证设置时打开另一个终端会话。如果断开连接以测试身份验证或未正确配置某些内容时,您不会被锁定在CVM之外。...要测试您的配置,请注销并尝试通过SSH再次登录。您将被要求提供6位数的验证码,因为密钥验证不会产生提示。 警告 如果您或您系统上的用户使用此方法,请确保SSH密钥和身份验证器应用程序位于不同的设备上。

2K30

如何在Ubuntu 18.04上安装和配置Ansible

在Ansible服务器上,使用cat命令将非root用户的SSH公钥文件的内容打印到终端的输出: cat ~/.ssh/id_rsa.pub 将生成的输出复制到剪贴板,然后打开一个新终端并使用SSH连接到您的一个...使用我们当前的设置,如果我们尝试使用Ansible连接到任何这些主机,该命令将失败(假设您不是以root用户身份运行)。...", "unreachable": true } 在Ansible服务器上,我们使用的是一个名为sammy的用户。Ansible将尝试用ssh sammy@server连接到每个主机。...如果sammy用户也不在远程系统上,这将不起作用。 我们可以创建一个文件,告诉“服务器”组中的所有服务器以root用户身份进行连接。...ping模块并不真正接受任何参数,但我们可以尝试另一个命令来查看它是如何工作的。我们通过输入-a将参数传递给脚本。 “shell”模块允许我们将终端命令发送到远程主机并检索结果。

6.1K30
  • Linux:SSH和基于密钥的身份验证

    您将在管理工作站(管理员的本地计算机)上生成一个公钥-私钥对,然后将公钥复制到一个或多个远程服务器。 在连接尝试期间,远程服务器使用管理员工作站的公钥加密一条消息挑战。...无需用户干预,这在配置管理任务在深夜或扩展事件期间运行时至关重要。 使用密钥进行身份验证的另一个好处是避免将密码嵌入到部署和配置文件中。这种有风险的做法很容易暴露管理员帐户的密码。...使用基于密钥的身份验证连接到多个远程服务器 如果管理员工作站实际上需要连接到多个远程 SSH 服务器,该怎么办?您可以为每个服务器维护单独的密钥对,但这将非常繁琐。...审核 SSH 连接的日志文件 定期审核远程 SSH 连接的日志文件,以识别任何未经授权的连接或重复的连接失败尝试。这些可能表明用户或恶意行为者试图访问远程服务器。...如果您使用 SSH 管理多个远程 Linux 服务器,请考虑使用 rsyslog 集中您的日志文件。这样做可以更轻松地查看 SSH 连接,帮助您验证只有授权连接发生。

    91190

    【DB笔试面试275】 与SHELL脚本相关的一些笔试面试题(目前37道,后续持续更新)

    答案:一个SHELL脚本就是一个文本文件,它包含一个或多个命令。系统管理员会经常需要使用多个命令来完成一项任务,此时可以添加这些所有命令在一个文本文件(SHELL脚本)中来完成这些日常工作任务。...0 如果结束状态不是0,那么说明命令执行失败。 真题7、在SHELL脚本中如何比较两个数字?...答案:可以通过使用xargs这个命令,将命令输出的结果作为参数传递给另一个命令。...真题37、如何使用SHELL脚本来查看多个服务器的端口是否打开? 答案:在配置服务器的时候,需要经常查看服务器的某个端口是否已经开放。如果服务器只有一两台的话,那么只需要使用nc命令查看即可。...但是,如果有很多个服务器的话,那么在这种情况下,可以使用SHELL脚本配合nc命令来检查端口的开放情况。不管服务器有几台,需要检查的端口有几个,使用SHELL脚本都可以实现。

    1.8K30

    SSH(sshd)终极安全加固指南

    这篇指南将涉及到很多选项,但这些选项并不适合所有的服务器,只有你自己了解自己的环境配置、用户基础以及数据的重要性,因此到底哪些配置适合于你的系统,完全取决于你、你公司的安全策略或者是你组织内的某些人。...限制身份验证最大尝试次数 限制用户失败认证的最大次数是一个缓解暴力攻击的好方法。将MaxAuthTries设置为比较小的数字(x),将会在用户x次失败尝试后强制断开会话。...修改配置文件如下: PermitEmptyPasswords no 这是另一个简单却重要的配置,建议对所有非特殊情况下使用。 如果你使用密码认证,实施密码复杂性规则是一个明智的选择。...禁用基于受信主机的无密码登录 rhosts文件是一种控制系统间信任的关系的方法,如果一个系统信任另一个系统,则这个系统不需要密码就允许来自受信认系统的登录。...用户身份验证后,SSH将使用该用户的权限创建另一个进程。

    4.7K60

    Linux系统如何通过该日志来排错

    当有人通过不正当或无效的凭据来登录时会出现认证失败,这通常发生在使用 SSH 进行远程登录或 su 到本地其他用户来进行访问权时。这些是由插入式验证模块(PAM)来记录的。...这些都是潜在的攻击者正在尝试和访问失败的账户。这是一个在 ubuntu 系统上的例子。  ...如果有人在几分钟内登录失败一次或两次,它可能是一个真正的用户而忘记了密码。但是,如果有几百个失败的登录并且使用的都是不同的用户名,它更可能是在试图攻击系统。...,但一个常见的原因是内存用尽。...这是另一个你应该中央化存储日志的原因! 定时任务错误日志 cron 守护程序是一个调度器,可以在指定的日期和时间运行进程。如果进程运行失败或无法完成,那么 cron 的错误出现在你的日志文件中。

    98930

    使用GNU Screen管理持久终端会话

    介绍 GNU Screen是一种与终端会话配合使用的工具,允许用户在断开连接后恢复会话。Screen可防止会话“超时”或断开SSH连接或本地终端仿真器。...没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。 安装GNU Screen 本节介绍如何在许多不同的系统上安装Screen。...当您和另一个用户尝试同时访问同一会话时,此参数特别有用。 screen -DDR - 从正在运行的附件中分离正在运行的会话并执行强制重新附加。当-dr选项不成功时,这很有用。...操纵Screen会话 连接或重新连接到Screen会话后,所有命令都通过使用Ctrl,字母a和另一个字母或数字来执行。(注意同时按下Ctrl和a键。)...语法如下: ssh -t @ screen -r 用户名是您连接的用户,服务器是服务器的IP地址或名称。

    2.1K20

    理想汽车前端面试题详解,面试经验分享

    二、HTTP1和HTTP1.1与HTTP2的区别连接使用:HTTP/1.0默认每个请求/响应对使用一个新的连接,而HTTP/1.1引入了持久连接(keep-alive),允许在一个TCP连接上发送多个请求...用户拥有一对密钥,公钥存储在远程主机上,私钥保留在本地。当用户尝试连接到远程主机时,SSH客户端会使用私钥对数据进行签名,远程主机使用公钥验证签名。...;另一个称为私钥,必须由密钥的所有者严格保密。...204 No Content:无内容,服务器成功处理请求,但没有内容返回。3xx(重定向状态码):300 Multiple Choices:多种选择,请求有多个响应。...401 Unauthorized:未授权,请求需要用户验证。403 Forbidden:禁止访问,服务器理解请求但拒绝执行。404 Not Found:未找到,服务器上未找到请求的资源。

    10200

    如何使用 Fail2Ban 配置保护您的 Linux 服务器?

    如果 Fail2Ban 检测到登录尝试失败的高峰,它会自动将新的防火墙规则添加到您的 iptables 并在指定时间或无限期阻止源地址。安装 Fail2Ban 可帮助服务器所有者自动减少任何非法活动。...如何安装 Fail2Ban要安装 Fail2Ban 服务,请使用终端(macOS 和 Linux)或 PuTTY(Windows)等 SSH 客户端以 root 访问权限连接到您的服务器。...图片设置 jail.local 配置文件Fail2Ban 有另一个名为jail.conf的配置文件,其中包括监狱——带有动作的过滤器。但是,用户不应直接修改此文件,因为它包含软件的基本规则集。...图片findtime此设置确定登录尝试失败的时间段。如果一个主机在设定的时间段内认证失败一定次数(基于maxretry设置),它的 IP 地址将被禁止。...默认值为auto,但如果你使用 CentOS 或 Fedora,则需要systemd。以下是您可以选择的可用值:pynotify – 实时监控文件系统的变化,需要安装一个文件修改监控器。

    2.8K40

    为你的CVM设置SSH密钥吧!

    默认情况下,SSH使用密码进行身份验证,大多数服务商都建议使用SSH密钥。然而,这仍然只是一个单一的因素。如果一个黑客已入侵了你电脑个人计算机,那么他们也可以使用您的密钥来破坏您的服务器。...本文将介绍如何启用SSH身份验证,除了使用SSH密钥外,还将使用OATH-TOTP应用程序。然后,通过SSH登录到服务器需要跨两个通道的两个因素,从而使其比单独的密码或SSH密钥更安全。...sudo systemctl restart sshd.service 要测试到目前为止一切是否正常,请打开另一个终端并尝试通过SSH登录。...尽管您没有看到使用SSH密钥的任何指示,但您的登录尝试使用了两个因素。...若要将代码过期窗口扩展到4分钟,请添加行WINDOW_SIZE 17. 若要禁用多个失败登录(速率限制),请删除行RATE_LIMIT 3 30. 若要更改速率限制的阈值,请查找该行。

    2.9K20

    如何在Ubuntu 14.04上使用Fail2Ban保护Apache服务器

    介绍 在操作Web服务器时,必须实施安全措施来保护您的站点和用户。使用防火墙策略保护您的网站和应用程序并使用密码身份验证限制对某些区域的访问是保护系统安全的一个很好的起点。...在本指南中,我们将演示如何安装fail2ban和配置它以监控Apache日志的入侵尝试。我们将使用Ubuntu 14.04服务器。...默认情况下,fail2ban配置为仅禁止失败的SSH登录尝试。我们需要启用一些规则来配置它,以检查Apache日志中是否存在指示恶意活动的模式。...配置文件中的每个jail都由一个包含方括号中的jail名称的标头标记(每个部分,但除了[DEFAULT]部分表示特定的jail的配置)。默认情况下,仅限[ssh]启用jail。...学习如何使用fail2ban来保护服务器的基础知识可以轻松地为您提供极大的安全性。 更多Ubuntu教程请前往腾讯云+社区学习更多知识。

    92111

    如何使用fail2ban防御SSH服务器的暴力破解攻击

    介绍 对于SSH服务的常见的攻击就是暴力破解攻击——远程攻击者通过不同的密码来无限次地进行登录尝试。当然SSH可以设置使用非密码验证验证方式来对抗这种攻击,例如公钥验证或者双重验证。...将不同的验证方法的优劣处先放在一边,如果我们必须使用密码验证方式怎么办?你是如何保护你的 SSH 服务器免遭暴力破解攻击的呢? 幸运的是,有一种工具可以缓解这种攻击这个工具是fail2ban。...如果您配置了邮件服务器,请将其更改为外部邮件地址。 mta:这指定将用于传递邮件的邮件代理。 如果您的邮件服务器配置了sendmail,请保留默认选项(sendmail)。...如果您没有配置邮件服务器,但希望将本地邮件传递到用户帐户,则可以将“sendmail”更改为“mail”。 如果您希望配置电子邮件,则必须如上所述编辑action参数。...这告诉fail2ban如何解析程序的日志文件以查看失败的身份验证。 如果fail2ban解析失败。logpath变量保存服务日志文件的路径, 您可以在此处覆盖任何其他默认参数。

    1.5K30

    Ubuntu防止SSH暴力破解

    目录 错误禁登fail2ban 修改SSH端口 禁止root远程登录 我的服务器只要一放开SSH端口,就会遭受暴力攻击,像这样: 只好改了SSH默认端口,但没有用,可以用NMAP扫出来,比如: 无奈不用时关掉...SSH端口,用的时候再打开,但这也太麻烦了。...下面给出几种方法,建议看情况组合使用。 错误禁登fail2ban 这里使用了一个软件:fail2ban。它可以在尝试失败一定次数后,禁止其登录一段时间,让尝试破解的黑客付出超长的时间代价。...# bantime是禁止使用IP的持续时间。 如果未指定后缀,则默认为秒。 默认情况下,bantime值设置为10分钟。 通常,大多数用户都希望设置更长的禁止时间。...例如,如果将Fail2ban设置为在五次失败之后禁止IP(maxretry,请参见下文),则这些失败必须在findtime持续时间内发生。

    97120

    Ubuntu防止被SSH暴力破解的几点措施

    目录 错误禁登fail2ban 修改SSH端口 禁止root远程登录 禁止使用空白密码的用户访问 使用 SSH 版本 2 关闭 TCP 端口转发和 X11 转发 ---- 我的服务器只要一放开SSH端口...,就会遭受暴力攻击,像这样: 只好改了SSH默认端口,但没有用,可以用NMAP扫出来,比如: 无奈不用时关掉SSH端口,用的时候再打开,但这也太麻烦了。...下面给出几种方法,建议看情况组合使用。 错误禁登fail2ban 这里使用了一个软件:fail2ban。它可以在尝试失败一定次数后,禁止其登录一段时间,让尝试破解的黑客付出超长的时间代价。...# bantime是禁止使用IP的持续时间。 如果未指定后缀,则默认为秒。 默认情况下,bantime值设置为10分钟。 通常,大多数用户都希望设置更长的禁止时间。...例如,如果将Fail2ban设置为在五次失败之后禁止IP(maxretry,请参见下文),则这些失败必须在findtime持续时间内发生。

    1.8K30

    让“懒惰” Linux 运维工程师事半功倍的 10 个关键技巧!

    如果我不清楚正在运行什么,以及为何不释放 DVD 驱动器,我则会弹出磁盘。但这样效率很低。 下面介绍如何找到保持 DVD 驱动器的进程,并轻松弹出 DVD 驱动器:首先进行模拟。...关于此技巧需要注意的一点是,双方需要以同一用户登录。screen 命令还可以:实现多个窗口和拆分屏幕。请阅读手册页获取更多相关信息。 对于 screen 会话,我还有最后一个技巧。...可以尝试使用 -X 选项通过 SSH 连接到 ginger 并启动它,但这对带宽要求很高,您需要忍受等待的痛苦。VNC 是一个网络友好的工具,几乎适用于所有操作系统。...技巧8:命令行脚本和实用程序 Linux 系统管理员通过使用权威的命令行脚本会变得更高效。这包括巧妙使用循环和知道如何使用 awk、grep 和 sed 等的实用程序解析数据。...如果发现与预期不同的内存值,您就不知道是哪一个节点出了问题,或者有多少个节点。为此需要发出另一个命令。 这个技巧提供了一种查看某些内容的快速方式,而且如果发生错误,您可以立刻知道。

    1.2K60

    IBM技术专家教你“懒惰”Linux管理员的10个关键技巧

    如果我不清楚正在运行什么,以及为何不释放 DVD 驱动器,我则会弹出磁盘。但这样效率很低。 下面介绍如何找到保持 DVD 驱动器的进程,并轻松弹出 DVD 驱动器:首先进行模拟。...关于此技巧需要注意的一点是,双方需要以同一用户登录。screen 命令还可以:实现多个窗口和拆分屏幕。请阅读手册页获取更多相关信息。 对于 screen 会话,我还有最后一个技巧。...可以尝试使用 -X 选项通过 SSH 连接到 ginger 并启动它,但这对带宽要求很高,您需要忍受等待的痛苦。VNC 是一个网络友好的工具,几乎适用于所有操作系统。...08 命令行脚本和实用程序 Linux 系统管理员通过使用权威的命令行脚本会变得更高效。这包括巧妙使用循环和知道如何使用 awk、grep 和 sed 等的实用程序解析数据。...如果发现与预期不同的内存值,您就不知道是哪一个节点出了问题,或者有多少个节点。为此需要发出另一个命令。 这个技巧提供了一种查看某些内容的快速方式,而且如果发生错误,您可以立刻知道。

    70500

    IBM技术专家教你“懒惰”Linux管理员的10个关键技巧

    如果我不清楚正在运行什么,以及为何不释放 DVD 驱动器,我则会弹出磁盘。但这样效率很低。 下面介绍如何找到保持 DVD 驱动器的进程,并轻松弹出 DVD 驱动器:首先进行模拟。...关于此技巧需要注意的一点是,双方需要以同一用户登录。screen 命令还可以:实现多个窗口和拆分屏幕。请阅读手册页获取更多相关信息。 对于 screen 会话,我还有最后一个技巧。...可以尝试使用 -X 选项通过 SSH 连接到 ginger 并启动它,但这对带宽要求很高,您需要忍受等待的痛苦。VNC 是一个网络友好的工具,几乎适用于所有操作系统。...08 命令行脚本和实用程序 Linux 系统管理员通过使用权威的命令行脚本会变得更高效。这包括巧妙使用循环和知道如何使用 awk、grep 和 sed 等的实用程序解析数据。...如果发现与预期不同的内存值,您就不知道是哪一个节点出了问题,或者有多少个节点。为此需要发出另一个命令。 这个技巧提供了一种查看某些内容的快速方式,而且如果发生错误,您可以立刻知道。

    1K50

    “会偷懒的” Linux 管理员都会的 10 个关键技巧~

    如果我不清楚正在运行什么,以及为何不释放 DVD 驱动器,我则会弹出磁盘。但这样效率很低。 下面介绍如何找到保持 DVD 驱动器的进程,并轻松弹出 DVD 驱动器:首先进行模拟。...关于此技巧需要注意的一点是,双方需要以同一用户登录。screen 命令还可以:实现多个窗口和拆分屏幕。请阅读手册页获取更多相关信息。 对于 screen 会话,我还有最后一个技巧。...可以尝试使用 -X 选项通过 SSH 连接到 ginger 并启动它,但这对带宽要求很高,您需要忍受等待的痛苦。VNC 是一个网络友好的工具,几乎适用于所有操作系统。...技巧 8:命令行脚本和实用程序 Linux 系统管理员通过使用权威的命令行脚本会变得更高效。这包括巧妙使用循环和知道如何使用 awk、grep 和 sed 等的实用程序解析数据。...如果发现与预期不同的内存值,您就不知道是哪一个节点出了问题,或者有多少个节点。为此需要发出另一个命令。 这个技巧提供了一种查看某些内容的快速方式,而且如果发生错误,您可以立刻知道。

    1K10

    如何在Ubuntu 14.04上使用Fail2Ban保护Nginx服务器

    介绍 在操作Web服务器时,必须实施安全措施来保护您的站点和用户。使用防火墙策略保护您的网站和应用程序并使用密码身份验证限制对某些区域的访问是保护系统安全的一个很好的起点。...在本指南中,我们将演示如何安装fail2ban和配置它以监控Nginx日志的入侵尝试。我们将使用Ubuntu 14.04服务器。...默认情况下,fail2ban配置为仅禁止失败的SSH登录尝试。我们需要启用一些规则来配置它,以检查我们的Nginx日志中是否存在指示恶意活动的模式。...配置文件中的每个jail都由一个包含方括号中的jail名称的标头标记(每个部分,但该[DEFAULT]部分表示特定的jail的配置)。默认情况下,仅[ssh]启用jail。...学习如何用fail2ban保护服务器的基础知识可以轻松地为您提供极大的安全性。 更多Ubuntu教程请前往腾讯云+社区学习更多知识。

    1.7K00
    领券