pem/Key in Go를 사용하여 SSH 인증
개인 키를 사용하여 원격 SSH 서버에 연결하는 것이 편리한 방법입니다. 작업을 자동화하고 리소스를 관리합니다. Go 프로그래밍 언어는 SSH 연결 설정을 지원하는 ssh 패키지를 제공합니다. 그러나 개인 키로 인증하는 방법에 관한 문서는 다소 불분명할 수 있습니다.
pem 키로 SSH를 사용하여 서버에 연결하려면 다음 단계를 따르세요.
예:
<code class="go">package main import ( "crypto/x509" "fmt" "io/ioutil" "log" "net" "os" "golang.org/x/crypto/ssh" ) func main() { // Parse the private key key, err := ioutil.ReadFile("mykey.pem") if err != nil { log.Fatal(err) } // Get the signer signer, err := ssh.ParsePrivateKey(key) if err != nil { log.Fatal(err) } // Switch to using an agent if SSH_AUTH_SOCK is set if authSock := os.Getenv("SSH_AUTH_SOCK"); authSock != "" { sock, err := net.Dial("unix", authSock) if err != nil { log.Fatalf("Failed to connect to agent: %v", err) } _ = sock // TODO(harsh) // Implement working with agent. } // Create the AuthMethod authMethods := []ssh.AuthMethod{ssh.PublicKeys(signer)} // Set up the ClientConfig clientConfig := &ssh.ClientConfig{ User: "username", Auth: authMethods, HostKeyCallback: ssh.InsecureIgnoreHostKey(), } // Dial the connection client, err := ssh.Dial("tcp", "aws-hostname:22", clientConfig) if err != nil { log.Fatal(err) } // Create a session session, err := client.NewSession() if err != nil { log.Fatal(err) } // Execute a command output, err := session.Output("whoami") if err != nil { log.Fatal(err) } fmt.Println("Output:", string(output)) // Close the session and client _ = session.Close() _ = client.Close() }</code>
By 다음 단계에 따라 개인 키를 사용하여 보안 SSH 연결을 설정하고 Go 표준 라이브러리의 SSH 패키지를 사용하여 원격 서버에서 명령을 실행할 수 있습니다.
위 내용은 PEM/Key in Go를 사용하여 SSH에 인증하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!