Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk SSH ke Pelayan Linux Menggunakan Kekunci dalam Go?

Bagaimana untuk SSH ke Pelayan Linux Menggunakan Kekunci dalam Go?

Susan Sarandon
Lepaskan: 2024-11-03 14:04:03
asal
1042 orang telah melayarinya

How to SSH into Linux Servers Using Keys in Go?

SSH ke Pelayan Linux Menggunakan Kekunci dalam Go

Menyambung ke pelayan menggunakan SSH dan kunci dalam Golang boleh dicapai melalui pakej ssh. Begini cara anda boleh melakukannya:

Fungsi Dail memerlukan contoh ssh.AuthMethod, yang boleh dibuat daripada kekunci SSH menggunakan ssh.PublicKeys. Untuk mendapatkan penandatangan daripada bait PEM, gunakan ssh.ParsePrivateKey.

Untuk menggunakan medan Penandatangan kunci persendirian, anda boleh menggunakan ssh.PublicKeys(penandatangan...) sebagai kaedah pengesahan anda.

Kod Contoh:

<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>
Salin selepas log masuk

Kod ini meniru arahan ssh -i x.pem user@host, mewujudkan sesi SSH dengan pelayan yang ditentukan menggunakan kekunci yang disediakan. Anda kini boleh melaksanakan arahan dalam pelayan melalui pembolehubah sesi.

Atas ialah kandungan terperinci Bagaimana untuk SSH ke Pelayan Linux Menggunakan Kekunci dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan