本文整理匯總了Golang中github.com/moul/advanced-ssh-config/pkg/config.Host.ProxyCommand方法的典型用法代碼示例。如果您正苦於以下問題:Golang Host.ProxyCommand方法的具體用法?Golang Host.ProxyCommand怎麽用?Golang Host.ProxyCommand使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/moul/advanced-ssh-config/pkg/config.Host
的用法示例。
在下文中一共展示了Host.ProxyCommand方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: proxy
func proxy(host *config.Host, conf *config.Config) error {
if len(host.Gateways) > 0 {
Logger.Debugf("Trying gateways: %s", host.Gateways)
for _, gateway := range host.Gateways {
if gateway == "direct" {
err := proxyDirect(host)
if err != nil {
Logger.Errorf("Failed to use 'direct' connection")
}
} else {
gatewayHost := conf.GetGatewaySafe(gateway)
err := prepareHostControlPath(host, gatewayHost)
if err != nil {
return err
}
if host.ProxyCommand == "" {
host.ProxyCommand = "nc %h %p"
}
// FIXME: dynamically add "-v" flags
if err = hostPrepare(host); err != nil {
return err
}
command := "ssh %name -- " + host.ExpandString(host.ProxyCommand)
Logger.Debugf("Using gateway '%s': %s", gateway, command)
err = proxyCommand(gatewayHost, command)
if err == nil {
return nil
}
Logger.Errorf("Cannot use gateway '%s': %v", gateway, err)
}
}
return fmt.Errorf("No such available gateway")
}
Logger.Debugf("Connecting without gateway")
return proxyDirect(host)
}
示例2: proxy
func proxy(host *config.Host, conf *config.Config) error {
if len(host.Gateways) > 0 {
logrus.Debugf("Trying gateways: %s", host.Gateways)
for _, gateway := range host.Gateways {
if gateway == "direct" {
err := proxyDirect(host)
if err != nil {
logrus.Errorf("Failed to use 'direct' connection")
}
} else {
gatewayHost := conf.GetGatewaySafe(gateway)
err := prepareHostControlPath(host, gatewayHost)
if err != nil {
return err
}
if host.ProxyCommand == "" {
host.ProxyCommand = "nc %h %p"
}
command := "ssh %name -- " + commandApplyHost(host.ProxyCommand, host)
logrus.Debugf("Using gateway '%s': %s", gateway, command)
err = proxyCommand(gatewayHost, command)
if err == nil {
return nil
}
logrus.Errorf("Cannot use gateway '%s': %v", gateway, err)
}
}
return fmt.Errorf("No such available gateway")
}
logrus.Debugf("Connecting without gateway")
return proxyDirect(host)
}