[go] go 언어에서의 원격 접속 및 관리를 위한 os 패키지 활용

go 언어를 사용하여 원격 시스템에 접속하고 관리하는 것은 매우 유용합니다. go의 os 패키지를 활용하여 원격 시스템과 상호작용하는 방법을 알아보겠습니다.

1. SSH 클라이언트 만들기

package main

import (
	"fmt"
	"golang.org/x/crypto/ssh"
	"log"
)

func main() {
	config := &ssh.ClientConfig{
		User: "<username>",
		Auth: []ssh.AuthMethod{
			ssh.Password("<password>"),
		},
		HostKeyCallback: ssh.InsecureIgnoreHostKey(),
	}

	client, err := ssh.Dial("tcp", "<remote_host>:22", config)
	if err != nil {
		log.Fatal("Failed to dial: ", err)
	}
	defer client.Close()

	session, err := client.NewSession()
	if err != nil {
		log.Fatal("Failed to create session: ", err)
	}
	defer session.Close()

	output, err := session.CombinedOutput("ls -l")
	if err != nil {
		log.Fatal("Failed to run: ", err)
	}
	fmt.Println(string(output))
}

2. 원격 명령 실행하기

위의 예제에서는 SSH 클라이언트를 만들고 원격 시스템에서 ‘ls -l’ 명령을 실행하는 방법을 보여줍니다.

이 외에도 go 언어를 사용하여 파일 전송, 프로세스 관리 등 많은 작업을 수행할 수 있습니다. os 패키지의 기능을 활용하여 원격 시스템에 접속하고 관리하는 다양한 방법을 탐구해 보세요.

원본 글: Using the Go SSH package to automate server tasks

위의 예제는 golang.org/x/crypto/ssh 패키지를 사용하여 SSH 클라이언트를 만들고 원격 시스템에 명령을 실행하는 방법을 보여줍니다.

이에 대한 추가 정보 및 자세한 내용은 해당 웹사이트를 참고하세요.