Exemplos de Golang SSH

Exemplos de Golang SSH

Secure Shell ou SSH é um protocolo de rede seguro que permite logins remotos de dispositivos em uma conexão segura. SSH é um dos protocolos de rede mais úteis e populares nos últimos anos.

Neste artigo, discutiremos como você pode usar o trabalho com o protocolo SSH.

Pacote SSH de Golang

Neste tutorial, usaremos o pacote Crypto/SSH. Você pode importar o pacote como:

importar "Golang.org/x/cripto/ssh "

Cliente ssh

Começaremos construindo um cliente SSH que leva o endereço de um servidor SSH remoto e se conecta a ele.

Considere o exemplo de código como mostrado abaixo:

Pacote principal
importação (
"registro"
"Golang.org/x/cripto/ssh "
"Golang.org/x/cripto/ssh/conhecido "
)
func main ()
// Config SSH
HostKeyCallback, Err: = KnowdHosts.Novo ("/home/debian11/.ssh/conhecido_hosts ")
se err != nil
registro.Fatal (ERR)

Config: = & ssh.ClientConfig
Usuário: "Ubuntu",
Auth: [] SSH.AuthMethod
ssh.Senha ("Senha"),
,
HostKeyCallback: HostKeyCallback,

// conectar o servidor ssh
Conn, err: = ssh.Dial ("TCP", "192.168.205.217: 22 ", config)
se err != nil
registro.Fatal (ERR)

adiar conn.Fechar()

No exemplo de código anterior, começamos importando os módulos necessários. Nós importamos os criptografia/ssh e criptografia/conhecidos para se conectar ao servidor ssh e analisar a tecla Host.

Em seguida, criamos uma nova chave do host usando os conhecidos.Método novo (). A função retorna um retorno de chamada da chave do host dos arquivos de chaves do host especificado.

Em seguida, criamos a configuração para fazer login no servidor. Esta é uma estrutura de retenção de informações, como usuário e método de autenticação.

A última etapa é discar a conexão com o servidor usando o SSH.Método Dial ().

Criar sessão

Podemos criar uma sessão usando o método de notícias. Um código de exemplo de código é como mostrado abaixo:

sessão, err: = Conn.Newsion ()
se err != nil
registro.Fatal (ERR)

adiar sessão.Fechar()

Solicite Pty

Considere o exemplo de código fornecido abaixo:

// Configurar o modo terminal
Modos: = ssh.TerminalModes
ssh.Eco: 0, // supression eco

// Executar sessão do terminal
se err: = sessão.Solicitação ("xterm", 50, 80, modos); errar != nil
registro.Fatal (ERR)

// Inicie a concha remota
se err: = sessão.Concha(); errar != nil
registro.Fatal (ERR)

No exemplo anterior, configuramos os modos de terminal. Embora você possa usar os parâmetros padrão, neste exemplo, definimos o SSH.Eco valor para 0. Isso impede que o shell ecoando os comandos de volta para você.

Em seguida, solicitamos uma sessão de terminal usando o método requestpty (). Isso leva o termo como uma string, e a altura e a largura da sessão do terminal como números inteiros e o modo de configuração do terminal.

Comando de execução

Você pode executar um único comando no servidor assim que a sessão for estabelecida. Por exemplo:

VAR backs backs.Amortecedor
sessão.Stdout = & buff
se err: = sessão.Executar ("ls -la"); errar != nil
registro.Fatal (ERR)

fmt.Println (buff.Corda())

No exemplo anterior, usamos a função de execução para executar um comando no servidor.

Um exemplo de saída é mostrado abaixo:

Conclusão

Este guia abrange os fundamentos de trabalhar com o pacote SSH na linguagem de programação Go. Além disso, criando uma sessão usando o método de notícias, solicitando uma sessão de terminal usando o método requestpty () e usando o comando de execução foi discutido. Esperamos que você tenha achado este artigo útil. Confira outros artigos de dica do Linux para obter mais dicas e informações.