当前位置: 首页>>代码示例>>Golang>>正文


Golang ServerConfig.PublicKeyCallback方法代码示例

本文整理汇总了Golang中golang.org/x/crypto/ssh.ServerConfig.PublicKeyCallback方法的典型用法代码示例。如果您正苦于以下问题:Golang ServerConfig.PublicKeyCallback方法的具体用法?Golang ServerConfig.PublicKeyCallback怎么用?Golang ServerConfig.PublicKeyCallback使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在golang.org/x/crypto/ssh.ServerConfig的用法示例。


在下文中一共展示了ServerConfig.PublicKeyCallback方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: TestAuth

func TestAuth(t *testing.T) {
	a, b, err := netPipe()
	if err != nil {
		t.Fatalf("netPipe: %v", err)
	}

	defer a.Close()
	defer b.Close()

	agent, _, cleanup := startAgent(t)
	defer cleanup()

	if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], Comment: "comment"}); err != nil {
		t.Errorf("Add: %v", err)
	}

	serverConf := ssh.ServerConfig{}
	serverConf.AddHostKey(testSigners["rsa"])
	serverConf.PublicKeyCallback = func(c ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error) {
		if bytes.Equal(key.Marshal(), testPublicKeys["rsa"].Marshal()) {
			return nil, nil
		}

		return nil, errors.New("pubkey rejected")
	}

	go func() {
		conn, _, _, err := ssh.NewServerConn(a, &serverConf)
		if err != nil {
			t.Fatalf("Server: %v", err)
		}
		conn.Close()
	}()

	conf := ssh.ClientConfig{}
	conf.Auth = append(conf.Auth, ssh.PublicKeysCallback(agent.Signers))
	conn, _, _, err := ssh.NewClientConn(b, "", &conf)
	if err != nil {
		t.Fatalf("NewClientConn: %v", err)
	}
	conn.Close()
}
开发者ID:acquia,项目名称:fifo2kinesis,代码行数:42,代码来源:client_test.go

示例2:

			BeforeEach(func() {
				targetConfigJson, err := json.Marshal(proxy.TargetConfig{
					Address:    sshdListener.Addr().String(),
					PrivateKey: TestPrivatePem,
				})
				Expect(err).NotTo(HaveOccurred())

				permissions = &ssh.Permissions{
					CriticalOptions: map[string]string{
						"proxy-target-config": string(targetConfigJson),
					},
				}

				publicKeyAuthenticator = &fake_authenticators.FakePublicKeyAuthenticator{}
				publicKeyAuthenticator.AuthenticateReturns(&ssh.Permissions{}, nil)
				daemonSSHConfig.PublicKeyCallback = publicKeyAuthenticator.Authenticate
			})

			It("will use the public key for authentication", func() {
				expectedKey, _, _, _, err := ssh.ParseAuthorizedKey([]byte(TestPublicAuthorizedKey))
				Expect(err).NotTo(HaveOccurred())

				Expect(publicKeyAuthenticator.AuthenticateCallCount()).To(Equal(1))

				_, actualKey := publicKeyAuthenticator.AuthenticateArgsForCall(0)
				Expect(actualKey.Marshal()).To(Equal(expectedKey.Marshal()))
			})
		})

		Context("when the config contains a user and a public key", func() {
			var publicKeyAuthenticator *fake_authenticators.FakePublicKeyAuthenticator
开发者ID:sykesm,项目名称:diego-ssh,代码行数:31,代码来源:proxy_test.go


注:本文中的golang.org/x/crypto/ssh.ServerConfig.PublicKeyCallback方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。