github.com/driusan/dgit@v0.0.0-20221118233547-f39f0c15edbb/git/ssh_unix.go (about)

     1  //go:build dragonfly || openbsd || darwin || freebsd || netbsd || solaris || linux
     2  // +build dragonfly openbsd darwin freebsd netbsd solaris linux
     3  
     4  package git
     5  
     6  import (
     7  	"golang.org/x/crypto/ssh"
     8  	"io/ioutil"
     9  	"os/user"
    10  )
    11  
    12  func getSigners() ([]ssh.Signer, error) {
    13  	user, err := user.Current()
    14  	if err != nil {
    15  		return nil, nil
    16  	}
    17  	f, err := ioutil.ReadFile(user.HomeDir + "/.ssh/id_rsa")
    18  	if err != nil {
    19  		return nil, nil
    20  	}
    21  	key, err := ssh.ParsePrivateKey(f)
    22  	if err != nil {
    23  		return nil, err
    24  	}
    25  	return []ssh.Signer{key}, nil
    26  }