| // Copyright 2016 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package agent_test |
| |
| import ( |
| "log" |
| "net" |
| "os" |
| |
| "golang.org/x/crypto/ssh" |
| "golang.org/x/crypto/ssh/agent" |
| ) |
| |
| func ExampleNewClient() { |
| // ssh-agent(1) provides a UNIX socket at $SSH_AUTH_SOCK. |
| socket := os.Getenv("SSH_AUTH_SOCK") |
| conn, err := net.Dial("unix", socket) |
| if err != nil { |
| log.Fatalf("Failed to open SSH_AUTH_SOCK: %v", err) |
| } |
| |
| agentClient := agent.NewClient(conn) |
| config := &ssh.ClientConfig{ |
| User: "gopher", |
| Auth: []ssh.AuthMethod{ |
| // Use a callback rather than PublicKeys so we only consult the |
| // agent once the remote server wants it. |
| ssh.PublicKeysCallback(agentClient.Signers), |
| }, |
| HostKeyCallback: ssh.InsecureIgnoreHostKey(), |
| } |
| |
| sshc, err := ssh.Dial("tcp", "localhost:22", config) |
| if err != nil { |
| log.Fatal(err) |
| } |
| // Use sshc... |
| sshc.Close() |
| } |