// 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() }