草庐IT

remote-ssh

全部标签

shell - ssh 在 golang 中使用交互式 shell 执行 nsenter 作为远程命令来调试 docker 容器

我正在尝试在coreos上自动调试docker容器。我想要一个通过ssh连接到主机并执行nsenter的脚本。从我的OSX盒子直接跳转到一个容器中,而不需要手动做很多事情,这将是非常方便的。我知道以这种方式进入容器可能很麻烦,但如果事情变得艰难,我想使用这样的工具。所以这就是我到目前为止在golang中所拥有的。我能够创建一个交互式shell。我遇到的问题是,使用ctrl+R反向搜索bash历史记录会中断session。该代码已在下方注释,因此未执行。但是,我也可以执行单个命令,此处为nsenter,但我收到错误stdin:isnotatty并且没有其他任何反应。我很想知道为什么我程序

go - 如何增加 golang.org/x/crypto/ssh 的详细程度

我想使用golang.org/x/crypto/ssh编写一个小程序,该程序能够读取相当于ssh-v输出的内容。虽然我能够通过ssh包连接到我的服务器,但我不知道如何启用详细输出或获取其中的所需信息。因为我是golang的新手,所以我什至无法决定它是否可行。到目前为止,这是我的代码packagemainimport("fmt""golang.org/x/crypto/ssh")typeSSHClientstruct{Config*ssh.ClientConfigHoststringPortint}funcmain(){sshConfig:=&ssh.ClientConfig{User:

go - 使用 golang crypto/ssh 在 Cisco 上运行多个命令

我将以下代码拼凑在一起,可以让我向Cisco盒子的ssh控制台发送读写操作,但我目前不确定如何在同一session中发送多个命令。我将整个程序包括在内,以便将服务器作为future尝试相同事情的其他人的起点,我找不到专门针对GolangCisco的工作示例。packagemainimport("fmt""io""io/ioutil""net""os"//"strings""golang.org/x/crypto/ssh""golang.org/x/crypto/ssh/agent")typeSSHCommandstruct{Stdinio.ReaderStdoutio.WriterSt

ssh - 如何在 Go 中通过隧道路由 http Get?

我有一个到我的服务器的ssh隧道(通过端口:9998)。我希望在Go中通过此端口路由我的httpGET/POST请求。在java中,我会指定DsocksProxyHost和DsocksProxyPort。我正在寻找Go中的类似选项。提前感谢您的帮助。 最佳答案 使用上述评论中提供的信息,这里是一个关于如何通过SOCKS代理传输HTTP请求的工作示例:packagemainimport("fmt""io/ioutil""net""net/http""time""golang.org/x/net/proxy")funcmain(){ur

go - 使用 GO 的 SSH 反向隧道

我正在尝试编写一个可以帮助绕过防火墙/Nat问题的服务器/客户端。我注意到SSH已经内置了对这样做的支持。(http://rustyrazorblade.com/2010/03/ssh-reverse-tunnel-to-access-box-behind-firewall/)我尝试了几个不同的SSH示例,但似乎都不起作用。我发现一个项目说它实现了远程端口转发->https://godoc.org/dev.justinjudd.org/justin/easyssh服务器说它正在监听连接,但我无法通过SSH从服务器计算机连接到客户端计算机。(远程机器上的sshlocalhost8080应

go - 将 rsa.PublicKey 转换为 ssh.PublicKey

我有一个rsa.PublicKey,它由结构中的模数和公共(public)指数组成。我想验证用该key签名的ssh.Signature,我想如果我有ssh.PublicKey我可以调用Verify该接口(interface)上的方法。但是,我找不到任何实现ssh.PublicKey并支持从rsa.PublicKey转换的类。我是否需要编写专有方法来执行此操作,或者是否有一些我没有找到的类,或者是否有更好的方法来解决我的问题?对于上下文,我从x509.Certificate中获得了rsa.PublicKey,它来自yubikey,证明其PIV插槽之一中的key。

go - 在一个 SSH session 中运行多个命令

我需要在单个sshsession中运行多个命令://Definetheclientconfigurationconfig:=&ssh.ClientConfig{User:USERNAME,Auth:[]ssh.AuthMethod{ssh.PublicKeys(pem),},}//Connecttothemachineclient,err:=ssh.Dial("tcp",HOSTNAME+":"+PORT,config)iferr!=nil{panic("Failedtodial:"+err.Error())}//Createasessionsession,err:=client.Ne

ssh - goftp 包是否提供安全的文件传输?

我正在处理一个项目,该项目当前正在使用在goftp中找到的goftp将一些文件上传到网站目录中,供网站使用和查看。我知道质疑此设置的安全性,所以我研究了golang的ssh和sftp,但我遇到了问题,这让我很头疼,因为我是golang的新手。我的问题是,仅使用goftp会带来哪些安全威胁或问题?是否有更安全的替代方案?提前致谢! 最佳答案 所有普通FTP服务器本质上都是不安全的,因为它们通过未加密的链接使用纯文本进行身份验证。这意味着同一网络(特别是WiFi网络)上的任何人都可以嗅探网络流量并轻松提取用于身份验证的用户名和密码。您已

golang ssh 由 nc 替换 ssh ProxyCommand

我打算实现一个golang版本的ssh客户端来通过堡垒连接到目标服务器。但不幸的是,我在替换nc代理时失败了。在我本地的ssh配置:HostbastionHostNamexxx.xxx.xxx.xxxUserec2-userIdentityFile~/.ssh/xxx-bastion.pemHost10.0.*.*Userec2-userIdentityFile~/.ssh/xxx-dest.pemProxyCommandssh-qbastion"nc-w3600%h%p"我的golang实现如下:var(Bastion="xxx.xxx.xxx.xxx:22"Target="xxx.

go - 关闭加密 ssh session 以释放 golang 中所有资源的正确方法?

TL;DR-关闭golang.org/x/crypto/sshsession以释放所有资源的正确方法是什么?到目前为止我的调查:golang.org/x/crypto/ssh*Session有一个Close()函数调用*ChannelClose()函数发送消息(我猜是远程服务器)关闭,但我没有看到任何关于关闭其他资源的信息,比如从*SessionStdoutPipe()函数。查看*SessionWait()代码,我看到*SessionstdinPipeWriter已关闭,但与无关标准输出管道。这个包感觉很像os/exec包,它保证使用os/execWait()函数将清理所有资源。在那里