x/crypto/ssh를 사용하여 Go에서 Bastion 노드를 통해 프라이빗 인스턴스에 SSH 연결 설정
이 시나리오에서는 연결을 목표로 합니다. 퍼블릭 및 프라이빗 서브넷이 포함된 AWS VPC 내에 배포된 배스천 노드를 통해 로컬 노트북에서 프라이빗 인스턴스("서비스 인스턴스"라고 함)로 연결됩니다. 서비스 인스턴스에서 명령을 실행하고 로컬 노트북에서 파일을 전송하려고 합니다.
Go의 "x/crypto/ssh" 라이브러리를 사용하여 이를 달성하려면:
배스천 호스트에 대한 연결 설정:
Bastion에서 서비스 인스턴스에 대한 연결 설정:
서비스 인스턴스용 새 SSH 클라이언트 생성:
명령 실행 및 파일 전송:
다음은 이러한 단계를 보여주는 코드 조각입니다.
// connect to the bastion host bClient, err := ssh.Dial("tcp", bastionAddr, config) if err != nil { log.Fatal(err) } // Dial a connection to the service host, from the bastion conn, err := bClient.Dial("tcp", serviceAddr) if err != nil { log.Fatal(err) } ncc, chans, reqs, err := ssh.NewClientConn(conn, serviceAddr, config) if err != nil { log.Fatal(err) } sClient := ssh.NewClient(ncc, chans, reqs)
sClient를 사용하면 명령을 실행하고 서비스 인스턴스와 파일을 전송할 수 있습니다.
위 내용은 x/crypto/ssh를 사용하여 Go에서 Bastion 호스트를 통해 개인 인스턴스에 SSH로 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!