Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan sambungan SSH menggunakan Golang

Bagaimana untuk melaksanakan sambungan SSH menggunakan Golang

PHPz
PHPzasal
2023-04-14 13:33:153823semak imbas

Golang ialah bahasa pengaturcaraan yang ditaip kuat, sangat konkurensi dan selamat memori yang sangat sesuai untuk membangunkan aplikasi rangkaian. Salah satunya ialah anda boleh menggunakan Golang untuk melaksanakan sambungan SSH, yang membolehkan pengguna mengakses pelayan Linux dari jauh dengan mudah.

Artikel ini akan memperkenalkan cara menggunakan Golang untuk melaksanakan sambungan SSH. Kami akan bermula dengan memasang bahasa Go dan memperkenalkan perpustakaan bergantung dan proses pelaksanaan supaya pembaca boleh melaksanakan sambungan SSH dalam projek mereka sendiri.

1. Bahasa Pasang Go

Pertama, anda perlu memasang versi terkini Golang. Adalah disyorkan untuk memuat turun pakej pemasangan Golang rasmi: https://golang.org/dl/ dan memasangnya mengikut arahan rasmi. Selepas pemasangan selesai, anda boleh mengesahkan pemasangan yang berjaya dengan memasukkan arahan berikut dari baris arahan:

$ go version

Jika pemasangan berjaya, anda akan melihat nombor versi Golang dipasang pada komputer tempatan anda.

2. Pasang perpustakaan bergantung

Seterusnya, kita perlu memasang perpustakaan bergantung bernama "golang.org/x/crypto/ssh". Pustaka ini menyediakan fungsi yang berkaitan dengan sambungan SSH, termasuk menyambung, melaksanakan arahan, dsb.

Jalankan arahan berikut untuk memasang:

$ go get golang.org/x/crypto/ssh

Arahan ini akan memuat turun pustaka bergantung ke direktori yang ditunjukkan oleh pembolehubah persekitaran GOPATH. Jika pembolehubah persekitaran GOPATH belum ditetapkan, anda boleh memasukkan perintah berikut untuk menetapkannya:

$ export GOPATH=$HOME/go

Di sini saya menulis tentang sistem Linux Jika anda menggunakan Windows, anda boleh menukar eksport kepada set .

3. Laksanakan sambungan SSH

Selepas pemasangan selesai, kita boleh mula menggunakan perpustakaan bergantung ini untuk melaksanakan sambungan SSH.

Berikut ialah kod contoh sambungan SSH asas:

package main

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

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

    host := "example.com:22"
    client, err := ssh.Dial("tcp", host, sshConfig)
    if err != nil {
        panic(err)
    }
    defer client.Close()

    session, err := client.NewSession()
    if err != nil {
        panic(err)
    }
    defer session.Close()

    output, err := session.Output("ls -l")
    if err != nil {
        panic(err)
    }
    fmt.Println(string(output))
}

Atur cara ini mula-mula mencipta objek konfigurasi "ssh.ClientConfig", yang mengandungi nama pengguna dan kata laluan yang diperlukan untuk log masuk ke tuan rumah . Di sini, kami perlu menggantikan parameter "Pengguna" dan parameter "Auth" dengan sewajarnya supaya kami boleh menggunakan nama pengguna dan kata laluan yang betul untuk menyambung ke pelayan. Selain itu, kerana ini adalah contoh mudah, kami tidak akan melakukan pengesahan kunci hos dan sebaliknya menetapkan parameter "HostKeyCallback" kepada "ssh.InsecureIgnoreHostKey()".

Seterusnya, kami menggunakan fungsi "ssh.Dial()" untuk menyambung ke hos jauh melalui TCP. Jika sambungan berjaya, kami akan menutup sambungan klien sebelum fungsi tamat.

Kemudian, kami menggunakan fungsi "client.NewSession()" untuk mencipta sesi terminal baharu dan menetapkannya kepada pembolehubah bernama "session". Pada ketika ini, jika kita perlu melaksanakan beberapa arahan, kita boleh menggunakan fungsi "session.Output()". Pada akhir setiap sesi baharu, kami perlu menutupnya untuk memastikan tiada kebocoran sumber.

Akhir sekali, kami mengeluarkan hasil pulangan arahan "ls -l" dan mencetaknya ke konsol.

Ringkasan

Dalam artikel ini, kami memperkenalkan langkah-langkah untuk melaksanakan sambungan SSH menggunakan Golang. Kami bermula dengan memasang Golang, kemudian memasang perpustakaan bergantung, dan akhirnya melaksanakan program contoh sambungan SSH yang mudah.

Walaupun program ini hanyalah contoh mudah, ia boleh digunakan sebagai titik permulaan untuk anda mula membangunkan aplikasi SSH anda sendiri. Izinkan saya mengingatkan anda sekali lagi bahawa memandangkan SSH ialah protokol komunikasi yang sangat selamat, dalam pembangunan sebenar, amalan terbaik harus diikuti untuk memastikan komunikasi selamat antara pelayan dan pelanggan.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan sambungan SSH menggunakan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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