Ssh 패키지를 통해 SSH와 Golang의 키를 사용하여 서버에 연결할 수 있습니다. 수행 방법은 다음과 같습니다.
다이얼 기능에는 ssh.PublicKeys를 사용하여 SSH 키에서 생성할 수 있는 ssh.AuthMethod 인스턴스가 필요합니다. PEM 바이트에서 서명자를 얻으려면 ssh.ParsePrivateKey를 사용하십시오.
개인 키의 서명자 필드를 사용하려면 ssh.PublicKeys(signers...)를 인증 방법으로 사용할 수 있습니다.
예제 코드:
<code class="go">import ( "log" "net" "os" "github.com/gliderlabs/ssh" ) func main() { sock, err := net.Dial("unix", os.Getenv("SSH_AUTH_SOCK")) if err != nil { log.Fatal(err) } agent := agent.NewClient(sock) signers, err := agent.Signers() if err != nil { log.Fatal(err) } auths := []ssh.AuthMethod{ssh.PublicKeys(signers...)} cfg := &ssh.ClientConfig{ User: "username", Auth: auths, } cfg.SetDefaults() client, err := ssh.Dial("tcp", "aws-hostname:22", cfg) if err != nil { log.Fatal(err) } session, err := client.NewSession() if err != nil { log.Fatal(err) } log.Println("we have a session!") }</code>
이 코드는 ssh -i x.pem user@host 명령을 모방하여 제공된 키를 사용하여 지정된 서버와 SSH 세션을 설정합니다. 이제 세션 변수를 통해 서버 내에서 명령을 실행할 수 있습니다.
위 내용은 Go에서 키를 사용하여 Linux 서버에 SSH로 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!