Przykłady Golang Ssh

Przykłady Golang Ssh

Secure Shell lub SSH to bezpieczny protokół sieciowy, który umożliwia zdalne logowanie urządzeń w bezpiecznym połączeniu. SSH jest jednym z najbardziej przydatnych i popularnych protokołów sieciowych w ostatnich latach.

W tym artykule omówimy, w jaki sposób możesz użyć pracy z protokołem SSH.

Pakiet Golang SSH

W tym samouczku użyjemy pakietu Crypto/SSH. Możesz zaimportować pakiet jako:

Importuj „Golang.org/x/crypto/ssh "

Klient SSH

Zaczniemy od zbudowania klienta SSH, który przyjmuje adres zdalnego serwera SSH i łączy się z nim.

Rozważ przykład kodu, jak pokazano poniżej:

Pakiet Main
import (
"dziennik"
„Golang.org/x/crypto/ssh "
„Golang.org/x/crypto/ssh/znane hosts "
)
func main ()
// SSH Config
hosteyCallback, err: = znane hosts.NOWOŚĆ ("/Strona główna/debian11/.ssh/znane_hosts ”)
Jeśli err != zero
dziennik.Fatalny (err)

config: = & ssh.ClientConfig
Użytkownik: „Ubuntu”,
Auth: [] SSH.AuthMethod
ssh.Hasło („hasło”),
,
HosteyCallback: hosteyCallback,

// Połącz serwer OT SSH
conn, err: = ssh.Dial („TCP”, „192.168.205.217: 22 ", konfiguracja)
Jeśli err != zero
dziennik.Fatalny (err)

Defer Conn.Zamknąć()

W poprzednim przykładzie kodu zaczynamy od zaimportowania wymaganych modułów. Importujemy krypto/ssh i crypto/znane hosts, aby połączyć się z serwerem SSH i analizować klucz hosta.

Następnie tworzymy nowy klucz hosta za pomocą znanych hostów.Nowa () metoda. Funkcja zwraca zwrot klucza hosta z określonych plików kluczy hosta.

Następnie tworzymy konfigurację do logowania się na serwerze. Jest to informacje o utrzymywaniu struktury, takie jak metoda użytkownika i autoryzacji.

Ostatnim krokiem jest wybranie połączenia z serwerem za pomocą SSH.Metoda dial ().

Utwórz sesję

Możemy utworzyć sesję za pomocą metody wiadomości. Przykładowy kod kodu jest jak pokazano poniżej:

sesja, err: = conn.Nowa sesja()
Jeśli err != zero
dziennik.Fatalny (err)

sesja odroczenia.Zamknąć()

Prośba o Pty

Rozważmy przykład kodu podany poniżej:

// Skonfiguruj tryb terminalu
tryby: = ssh.TerminalModes
ssh.Echo: 0, // supress echo

// Uruchom sesję terminalową
Jeśli err: = sesja.Requestpty („xterm”, 50, 80, tryby); błądzić != zero
dziennik.Fatalny (err)

// Rozpocznij zdalną powłokę
Jeśli err: = sesja.Powłoka(); błądzić != zero
dziennik.Fatalny (err)

W poprzednim przykładzie konfigurujemy tryby terminalu. Chociaż w tym przykładzie możesz użyć parametrów domyślnych, ustawiamy SSH.Wartość echo do 0. Zapobiega to powrót do ciebie powłoki.

Następnie prosimy o sesję terminalową za pomocą metody requestpty (). Zajmuje to termin jako ciąg, a wysokość i szerokość sesji terminalu jako liczby całkowite i tryb konfiguracji terminalu.

Uruchom polecenie

Możesz uruchomić pojedyncze polecenie na serwerze po ustaleniu sesji. Na przykład:

VAR BUFF BYTES.Bufor
sesja.Stdout = i buff
Jeśli err: = sesja.RUN („LS -LA”); błądzić != zero
dziennik.Fatalny (err)

fmt.Println (buff.Strunowy())

W poprzednim przykładzie używamy funkcji Uruchom do wykonania polecenia na serwerze.

Przykład wyjściowy pokazano poniżej:

Wniosek

Ten przewodnik obejmuje podstawy pracy z pakietem SSH w języku programowania Go. Ponadto utworzenie sesji za pomocą metody wiadomości, żądanie sesji terminalowej za pomocą metody requestpty () i za pomocą polecenia uruchomionego zostało omówione. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły w Linux, aby uzyskać więcej wskazówek i informacji.