"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > x/crypto/ssh를 사용하여 GO의 요새 호스트를 통해 개인 인스턴스를 SSH로 만드는 방법은 무엇입니까?

x/crypto/ssh를 사용하여 GO의 요새 호스트를 통해 개인 인스턴스를 SSH로 만드는 방법은 무엇입니까?

2025-03-23에 게시되었습니다
검색:873

How to SSH into a Private Instance via a Bastion Host in Go using x/crypto/ssh?

x/crypto/ssh

  1. 이 시나리오에서 개인 인스턴스에 포함 된 개인 랩톱에 연결하는 것을 목표로합니다. 서브넷. 서비스 인스턴스에서 명령을 실행하고 로컬 랩톱에서 파일을 전송하려고합니다. Go의 "x/crypto/ssh"라이브러리 :

    • Host.
  2. 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)

아래 단계를 보여주는 코드 스 니펫입니다.

// 요새 호스트에 연결 bclient, err : = ssh.dial ( "tcp", bastionaddr, config) err! = nil {인 경우 log.fatal (err) } // 요새에서 서비스 호스트에 연결을받습니다. conn, err : = bcly.dial ( "tcp", serviceaddr) err! = nil {인 경우 log.fatal (err) } NCC, Chans, Reqs, err : = ssh.newclientconn (Conn, Serviceaddr, Config) err! = nil {인 경우 log.fatal (err) } sclient : = ssh.newclient (ncc, chans, reqs) How to SSH into a Private Instance via a Bastion Host in Go using x/crypto/ssh?

sclient를 사용하면 서비스 인스턴스로 명령을 실행하고 파일을 전송할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3