go 执行ssh 批量登录执行命令,返回了dial tcp: lookup : no such host 建立ssh连接错误: ssh: handshake failed: ssh: una

这篇具有很好参考价值的文章主要介绍了go 执行ssh 批量登录执行命令,返回了dial tcp: lookup : no such host 建立ssh连接错误: ssh: handshake failed: ssh: una。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

因为是初学者,很粗糙的一段命令,下面的局部代码

package main

import (
    "golang.org/x/crypto/ssh"

……

//执行命令 
for _, ip := range ipAddresses {
    localWg := &sync.WaitGroup{}
    localWg.Add(1)
    go func(ip string) {
        defer localWg.Done()
        localIP := ip
        username := config.Username
        password := config.Password
        config := &ssh.ClientConfig{
            Config: ssh.Config{
                Ciphers:        []string{"aes128-ctr", "aes192-ctr", "aes256-ctr", "aes128-gcm@openssh.com", "arcfour256", "arcfour128", "aes128-cbc", "3des-cbc", "aes192-cbc", "aes256-cbc"},
            },
            User:username,
            Auth: []ssh.AuthMethod{
                ssh.Password(password),
            },
            HostKeyCallback:   ssh.InsecureIgnoreHostKey(),
        }

        client, err := ssh.Dial("tcp",localIP+":22", config)
        if err != nil {
            log.Println("建立ssh连接错误:", err)
            return
        }
        defer client.Close()
    
    go HandleSession(client, commands,&wg)
    
    }(ip)
    localWg.Wait()


    }
}

这段代码主要通过 SSH 协议登录多个交换机,并在这些设备上执行一组命令。代码的主要流程如下:

  1. 读取登录文件、IP文件和命令文件:
  • 读取登录文件,获取 SSH 连接需要的用户名和密码。(
  • 读取 IP 文件,获取要登录的多个远程主机的 IP 地址。
  • 读取命令文件,获取要在远程主机上执行的命令。
  1. 执行命令:
  • 对于每个远程主机,创建一个 goroutine 进行 SSH 登录,并在远程主机上执行命令。
  • 在远程主机上创建 SSH session,并设置标准输入、标准输出和错误输出。
  • 将命令写入标准输入,等待 session 结束。

在本地电脑上测试登录是正常的,使用CMD的ssh也能直接登录设备,但执行命令的时候,就出现了

: no such host  建立ssh连接错误: dial tcp: lookup X.X.X.X

建立ssh连接错误: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password], no supported methods remain文章来源地址https://www.toymoban.com/news/detail-416315.html

到了这里,关于go 执行ssh 批量登录执行命令,返回了dial tcp: lookup : no such host 建立ssh连接错误: ssh: handshake failed: ssh: una的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SSH远程登录并执行命令测试

    SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,借助它我们可以把很多的远程操作自动化掉!下面就对 SSH 的远程操作功能进行一个小小的总结。 如果我们要查看一下某台主机的磁盘使用情况,是不是必

    2024年02月09日
    浏览(75)
  • ubuntu如何远程ssh登录Windows环境并执行测试命令

    在实际的开发中有时会遇到需要在ubuntu上远程登录Windows的电脑去执行一些比较特殊的命令。这个时候就需要使用python的paramiko模块,首先去远程登录,然后再去执行对应的cmd。 paramiko 是一个用于在Python中实现SSH(Secure Shell)协议的模块,它提供了客户端和服务器的功能,使得

    2024年02月04日
    浏览(43)
  • go包下载时报proxyconnect tcp: dial tcp 127.0.0.1:80: connectex错误的解决方案

    一大早的GoLand就开始抽风了,好几个文件import都红了,于是我正常操作点击提示的sync,但是却报了一堆错: go: downloading google.golang.org/grpc v1.61.1 go: downloading google.golang.org/genproto v0.0.0-20240228224816-df926f6c8641 go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20240228201840-1f18d85a4ec2

    2024年04月25日
    浏览(31)
  • jquery批量执行任务实时返回状态

    PHP后端处理脚本 ( process_tasks.php ): 在与HTML文件相同的目录下创建一个名为 process_tasks.php 的文件,用于处理批量任务的后端逻辑:

    2024年01月18日
    浏览(35)
  • SecureCRT实现批量创建及导入session和批量SSH2登录

    一、首先你已经装好了SecureCRT,并且已经激活 二、将下载下来的文件保存在你容易找到的地方,把后缀修改成py或者vbs,这里修改成了vbs ImportArbitraryDataFromFileToSecureCRTSessions 下载地址:https://forums.vandyke.com/showpost.php?p=37089postcount=1 三、编写你需要添加的主机信息,文件格式可

    2024年02月07日
    浏览(44)
  • kubectl命令报错:Unable to connect to the server: dial tcp XXX:16443: connect: no route to host

    前提 架构: keepalived+haproxy+kubernetes 问题说明 kubernetes集群好久不用了,今天打开集群执行一个 kubectl get nodes 命令,报错如下: Unable to connect to the server: dial tcp 192.168.2.XXX:16443: connect: no route to host 分析原因 出现这个问题几种原因, 集群坏了:如果报错的IP是master1的节点IP或虚

    2024年02月09日
    浏览(127)
  • postman返回状态码401、403或执行用例返回用户无权限以及用户未登录

    这些原因是因为我们导入的系统路径有问题,很多系统请求方式是使用Get的方法,这导致我们使用post方法的时候使用了Get方法的路径,这就是很容易踩的坑  我们可以使用 Postman Interceptor,我们先下载个Postman Interceptor拓展然后安装到浏览器上 参考这个 从零开始:快速入门

    2024年02月05日
    浏览(64)
  • Log4j反序列化命令执行漏洞(CVE-2017-5645)&Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)

    Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码 环境:vulhub 工具下载地址: ysoserial 利用工具生成payload: 1.创建文件 进入容器内部,查看文件创建成功 2.查看反弹的shell 有点

    2024年02月11日
    浏览(46)
  • SSH远程执行命令

    22服务器上有 jenkinsAutoBuild.sh ,执行以下命令,jenkinsAutoBuild.sh 会在远程服务器21上执行 不带参数 如果需要带参数,执行以下命令 执行21 服务器上的脚本文件,注意脚本要写绝对路径 不带参数 带参数 在脚本中应加载环境变量

    2024年02月16日
    浏览(38)
  • shell批量执行命令与文件传输脚本

    对未进行主机信任操作的服务器进行批量操作 由于ssh只能在交互模式中输入服务器密码进行登录登操作,不便于进行大批量服务器进行巡检或日志采集。sshpass恰好又解决了这个问题,使用 ssh -p passwd 可以实现命令行输入密码操作,便于进行规模巡检 首先需要在脚本执行机器

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包