草庐IT

remote-ssh

全部标签

ssh - 戈朗 : Execute shell commands on remote server

我有50台左右的Linux机器(RHEL)。我想通过在中央机器上运行的go脚本在这些机器上运行一些命令。我已经为从中央机器到所有远程机器的所有人设置了无密码ssh身份验证。尽管我也对非ssh解决方案持开放态度,但首选安全的解决方案。正在运行的命令会随着时间而改变。我还想在中央机器上运行的脚本中处理在远程机器上运行的命令的输出和返回代码。我只找到这个sshpackage,仅支持密码认证方式,不够好。还有其他选择吗? 最佳答案 你可以使用这个包https://github.com/hypersleep/easyssh例如你可以远程调用p

go - 如何使用 socks 代理连接远程 ssh 服务器?

packagemainimport("errors""fmt""net""golang.org/x/crypto/ssh")var(socksstring="127.0.0.1:8000"serverstring="192.168.1.1:2222"cmdstring=""loginstring="root"passwordstring="")funcmain(){c,err:=netConn(socks)iferr!=nil{fmt.Println(err)}conf:=&ssh.ClientConfig{User:login,Auth:[]ssh.AuthMethod{ssh.Pa

mysql - 如何使用 go-sql-driver 通过 SSH 上的标准 TCP/IP 连接到 MySQL?

我目前在Windows8.1上使用MySQLWorkbench,通过SSH使用标准TCP/IP访问Linux服务器上的远程MySQL数据库。基本上我有以下信息:SSH主机名:dbserver.myorg.com:ssh-portSSH用户名:myRemoteLoginUsernameSSH密码:(存储在保管库中)SSHkey文件:本地.ppk文件的路径MySQL主机名:127.0.0.1MySQL服务器端口:3306用户名:myRemoteDb用户名密码:(存储在保险库中)默认架构:myRemoteDatabaseName如何使用github.com/go-sql-driver/mys

使用 crypto/ssh 的 golang scp 文件

我正在尝试通过ssh下载远程文件以下方法在shell上运行良好sshhostname"tarcz/opt/local/folder">folder.tar.gz然而,在golang上使用相同的方法会在输出工件大小上产生一些差异。例如,具有纯shell的相同文件夹会生成工件gz文件179B,而与go脚本相同的文件夹会生成178B。我假设io.Reader中遗漏了某些内容或session较早关闭。请大家帮忙。这是我的脚本示例:funcexecuteCmd(cmd,hostnamestring,config*ssh.ClientConfig,pathstring)error{conn,_:=

ssh - 将公钥编码为 OpenSSH 格式以供显示

我有一个rsa.PublicKey对象(从rsa.PrivateKey中检索)。我正在尝试将其导出为OpenSSH格式,以便在网页中显示它。我注意到go.crypto/sshlibrary,似乎是这样做的。还有thediscussion关于它的实现(这实际上正是我需要做的)不幸的是,我有点卡住了,因为返回的字节数组采用未知编码,我不能只将它转换为字符串来显示它。funcPublicKey(rsaKeyrsa.PublicKey)string{key,_:=ssh.NewPublicKey(&rsaKey)marshalled:=ssh.MarshalPublicKey(key)retu

go - 模拟加密/ssh/终端

有没有人成功或有任何关于模拟进入(用于测试目的)term.ReadPassword(int(os.Stdin.Fd()))的最佳方法的想法?>在golang.org/x/crypto/ssh/terminal包中调用?我已经尝试创建一个临时文件(相对于os.Stdin)并将字符串值写入testing\n或testing\r到临时文件,但出现错误inappropriateioctlfordevice。我猜这是与TTY相关的东西或缺少的特定格式(?),但我真的不确定。感谢帮助。 最佳答案 如果您通过创建os.Stdin引用的假文件来st

Go x/crypto/ssh -- 如何通过堡垒节点建立到私有(private)实例的 ssh 连接

我想实现这个场景:在AWS上,我有一个VPC,其中部署了一个公有子网和私有(private)子网。在公共(public)子网中,我有一个“堡垒”实例,而在私有(private)子网中,有一个节点运行一些服务(也称为“服务实例”)。通过使用*nuxssh命令,我可以像这样从我的本地笔记本电脑连接到“服务实例”:ssh-t-oProxyCommand="ssh-iubuntu@nc%h%p"-iubuntu@我有一个Go程序,想做以下事情:sshconnecttothe"serviceinstance"from"locallaptop"overthe"bastion"usetheconne

session - Golang - 过滤事件 SSH session 的标准输出

我正在用Go编写一个SSH客户端,它连接到一个交换机并运行一系列配置命令。到目前为止,我能够成功连接到交换机、运行所需的命令并打印session的输出。当命令的输出太长时,开关期望输入\n、空格或“q”时就会出现问题。例如:switch#showintstatusPortNameStatusVlanDuplexSpeedTypeGi1/0/1notconnect100autoauto10/100/1000BaseTXGi1/0/2connected915a-fulla-10010/100/1000BaseTXGi1/0/3notconnect100autoauto10/100/1000

ssh - 戈朗 : forward ssh over websocket

我已经能够使用golang通过websocket转发telnet,使用类似的东西funcforwardtcp(wsconn*websocket.Conn,conn*telnet.Conn){connbuf:=bufio.NewReader(conn)tcpbuffer:=make([]byte,128)for{n,err:=connbuf.Read(tcpbuffer)iferr!=nil{log.Println("TCPReadfailed")break}iferr==nil{wsconn.WriteMessage(websocket.BinaryMessage,tcpbuffer[

Go - 如何从 PublicKey 生成 SSH PublicKey 指纹,PublicKey 的类型可能是 [ rsa dsa ssh-rsa ssh-dss ecdsa ] 之一

我只有一个PublicKey字符串,如何获取PublicKey指纹?我有一些想法形式https://go-review.googlesource.com/c/crypto/+/32814,但我不知道如何实现ssh.PublicKey接口(interface)。 最佳答案 您可能想使用ssh包中的ssh.ParseAuthorizedKey来加载key:https://godoc.org/golang.org/x/crypto/ssh#ParseAuthorizedKey这将为您提供一个公钥,您可以调用ssh.FingerprintL