我研究在节点上运行的代理恶魔。启动代理时,将建立到其他节点的所有ssh连接,然后在特定的时间间隔(每周一次)上,我们在这些ssh连接上创建新 session 以与其他节点进行通信。但据观察,在该时间范围内大约1个月后,创建 session 会产生EOF错误。
User: config.Username,
Auth: []ssh.AuthMethod{
ssh.Password(config.Password),
},
HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {
return nil
},
}
client, err := ssh.Dial("tcp", config.Host+":22", sshConfig)
session, err := client.NewSession()
defer session.Close()
b, err := session.CombinedOutput(command)
当此 session 创建出现EOF错误时,是否有任何方法可以恢复处于工作状态的ssh连接?如果仅在读取/写入错误时考虑重拨或重新连接,则此处使用哪种设计模式将很有用。
谢谢
最佳答案
我认为问题是一段时间后连接断开,您可以尝试的一些方法是
关于go - ssh session 打开请求最终在ssh连接上提供EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63590532/