PuTTY PlinkPlink significa PuTTY Link.

O Plink é um utilitário de linha de comando complementar para PuTTY.

Em um nível muito alto:

  • Use PuTTY para sessão SSH interativa do seu Windows para Servidores Linux
  • Use o Plink para a sessão SSH não-interativa para executar comandos linux remotos para fins de automação a partir do Windows


Neste tutorial, discutiremos o seguinte:

  1. Inicie o plink do prompt de comando
  2. Sessão Plink Interactive SSH
  3. Plink Sessão SSH não-interativa para executar um comando remoto
  4. Execute vários comandos do Linux a partir de um arquivo do Windows
  5. Especificar protocolo de conexão
  6. Especifique a senha do SSH como argumento do Plink
  7. Problemas de debug Plink
  8. Especifique a porta SSH como opção de encaixe
  9. Arquivos de log Plink para conexões SSH
  10. Especificar o protocolo SSH (SSH-1 ou SSH-2)
  11. Especificar protocolo IP (IPv4 ou IPv6)
  12. Use o arquivo de chave particular para autenticação com Plink
  13. Opções adicionais de habilitação e desativação para o Plink SSH
  14. Fingerprint e HostKey com Plink
  15. Plink – opção de lote para Windows Batch Files

Primeiro, baixe o executável do plink a partir daqui .

Se você não possui o PuTTY já instalado em sua máquina, verifique se você também baixou o executável do putty junto com o plink.

Se você tem um laptop Windows de 32 bits, certifique-se de baixar a versão de 32 bits do plink. Caso contrário, baixe a versão de 64 bits.

1. Inicie o plink do prompt de comando

Você não pode simplesmente clicar duas vezes em plink.exe para iniciá-lo. Uma vez que este é um utilitário de linha de comando (sem GUI), você deve primeiro iniciar o prompt de comando do Windows.

Para isso, clique no menu Iniciar no seu Windows e digite “cmd.exe” na caixa de pesquisa e pressione enter, isso irá iniciar o prompt de comando do Windows.

Além disso, dependendo de onde você baixou o plink.exe, talvez seja necessário modificar a variável PATH do Windows de acordo.

Vá para as janelas “Propriedades do sistema”, clique em “Variáveis ​​de ambiente”, selecione a variável Caminho e anexe o diretório onde o plink.exe está localizado aqui.

Ou, você pode simplesmente definir sua variável PATH como mostrado abaixo. No exemplo a seguir, baixei o diretório plink.exe para C: \ Downloads.

  Set PATH =% PATH%; C: \ Downloads

Em seguida, digite plink no prompt de comando, isso exibirá as várias opções disponíveis.

2. Plink Interactive SSH Session

O seguinte é a sintaxe básica para o plink:

  Plink [opções] conexão [comando]

Na sintaxe acima:

  • Opções – Você pode passar várias opções para plink. Isso é opcional.
  • Conexão – Isso terá as informações de conexão do servidor Linux ao qual deseja se conectar. Vários métodos de conexão são explicados nos exemplos abaixo.
  • Comando – Este é o comando que deve ser executado no servidor Linux remoto. Isso é opcional.

Embora o comando seja opcional, quando você não o dará, exibirá uma sessão interativa bruta, que terá muitos caracteres não-imprimíveis e não legíveis na tela. Como explicado anteriormente, o plink não se destina a ser usado como sessão interativa. Use o putty para uma sessão interativa.

Por enquanto, vejamos vários métodos para usar a conexão.

Primeiro, você pode apenas dar o endereço IP do servidor remoto. Isso solicitará o login e a senha para o login.

  C: \> plink 192.168.101.1
 Faça login como: root
 Senha do root@192.168.101.1:

Ou, você também pode usar o nome de usuário usando o símbolo @ como mostrado abaixo. Isso pedirá apenas a senha, já que especificamos o nome de usuário.

  C: \> plink root@192.168.101.1
 Usando o nome de usuário "root".
 Senha do root@192.168.101.1:

Você também pode passar o nome de usuário usando a opção -l como mostrado abaixo:

  C: \> plink 192.168.101.1 -l mysql

Você também pode usar o nome de uma sessão de mastique existente. Neste exemplo, estou usando a sessão de massas salva existente chamada “devdb”. Esta é a maneira recomendada de usar, pois você pode trazer todas as informações de configuração do PuTTY para aqui para esta sessão específica do “devdb”.

  C: \> plink devdb
 Usando o nome de usuário "root".
 Senha do root@192.168.101.1:

A seguinte carga é exatamente a mesma que acima.

  C: \> plink -load devdb
 Usando o nome de usuário "root".
 Senha do root@192.168.101.1:

Como você vê abaixo, uma vez que você efetuar o login, você receberá um prompt de comando. Mas, fazer qualquer coisa aqui exibirá alguns caracteres não user-friendly.

  C: \> plink devdb
 Usando o nome de usuário "root".
 Senha do root@192.168.101.1:
 ?] 0; root @ devdb: ~ [root @ devdb ~] #
 ?] 0; root @ devdb: ~ [root @ devdb ~] #
 ?] 0; root @ devdb: ~ [root @ devdb ~] #? [Kls -altr
 Total 326432
 Drwx ------.  2 raiz raiz 4096 23 de janeiro de 2016? [01; 34m.ssh? [0m
 Drwxr-xr-x.  2 raiz raiz 4096 9 de maio de 2016? [01; 3Documents? [0m
 Drwxr-xr-x.  2 raiz raiz 4096 8 de maio 12:41? [01; 3Downloads? [0m
 ? [M?] 0; root @ devdb: ~ [root @ devdb ~] #

Mais uma vez, para uma sessão SSH interativa, use PuTTY.

3. Plink Sessão SSH não-interativa para executar um comando remoto

Usando o plink, do Windows, você pode executar um comando no servidor Linux sem qualquer interação do usuário e apenas exibir a saída.

Para isso, passe o comando como o último argumento para o plink, conforme mostrado abaixo.

No exemplo a seguir, ele executará o comando “crontab -l” no servidor remoto e exibirá a saída.

  C: \> plink root@192.168.101.1 crontab -l
 Sem crontab para root

Se você quiser executar vários comandos, agrupe-os como mostrado abaixo.

  C: \> plink root@192.168.101.1 (nome do host; crontab -l)
 Devdb.thegeekstuff.com
 Sem crontab para root

O seguinte executará o db-backup.sh shellscript no servidor Linux remoto. Mas, você está iniciando isso com sua máquina Windows.

  Plink mysql@192.168.101.1 /root/bin/db-backup.sh

Poucos pontos a ter em mente:

  • Se o comando acima estiver pedindo senha e se você não quer que isso aconteça, você deve configurar a autenticação de chave pública-privada apropriadamente para que o servidor Linux remoto não solicite senha.
  • Você também pode passar a senha como uma opção de linha de comando para plink como mostrado em um dos exemplos abaixo.
  • Além disso, se o acima exibir uma mensagem de erro sobre protocolo inválido, então você deve passar o protocolo apropriado como mostrado no próximo exemplo.

4. Execute vários comandos Linux a partir de um arquivo do Windows

Em vez de especificar todos os comandos a serem executados no servidor Linux remoto na linha de comando do plink, você também pode colocá-los em um arquivo de texto e especificar o arquivo como um parâmetro para o plink.

Por exemplo, crie o seguinte arquivo chamado comandos.txt no seu Windows.

  C: \> digite command.txt
 nome de anfitrião
 Service mysql stop
 Yum -y instale httpd
 Início do mysql do serviço
 Serviço httpd start
 Crontab -l

Agora, execute todos os comandos acima no servidor Linux remoto um a um em uma seqüência, execute o seguinte comando de plink no seu laptop Windows.

  C: \> plink root@192.168.101.1 -m C: \ commands.txt

5. Especificar protocolo de conexão

O Plink permite os seguintes protocolos: SSH, Telnet, Login remoto (rlogin), Raw, Serial Connection

O mais popular e o padrão é SSH. Use -ssh como mostrado abaixo.

  C: \> plink -ssh root@192.168.101.1

Para Telnet:

  C: \> plink -telnet root@192.168.101.1

Para Login Remoto usando o rlogin:

  C: \> plink -rlogin root@192.168.101.1

Para Raw:

  C: \> plink -raw root@192.168.101.1
 SSH-2.0-OpenSSH_5.3

Se você está tentando especificar um protocolo específico e se você estiver recebendo um erro “Erro FATAL: erro de rede: conexão recusada”, isso significa que o servidor remoto não suporta o protocolo especificado.

Se você não quiser especificar o protocolo na linha de comando:

  • Você pode usar uma sessão PuTTY guardada que já possui o protocolo definido para essa sessão específica.
  • Ou, você pode usar a variável env de Windows chamada PLINK_PROTOCOL e definir o valor em conformidade, que será usado pelo plink.

6. Especificar Senha SSH como argumento do Plink

Se você não possui a configuração de autenticação baseada em chave, então você pode passar a senha como um parâmetro na linha de comando. Escusado será dizer que este método não é recomendado.

Isso se conectará ao servidor como root usando a senha especificada pela opção -pw, e executará todos os comandos Linux fornecidos e exibirá a saída no prompt de comando do Windows.

  C: \> plink root@192.168.101.1 -pw SecretRootPwd (data; nome do host; ls -l)

Claro, o método fácil é usar uma sessão de massa mecha (Por exemplo, devdb) em vez de especificar o nome de usuário e o endereço IP como mostrado abaixo.

  C: \> plink devdb -pw SecretRootPwd (data; nome do host; ls -l)

7. Debug Plink Issues

Primeiro, certifique-se de ter a versão mais recente do plink. Use a opção -V (maiúsculas e minúsculas) como mostrado abaixo. A versão estável atual é 0.69

  C: \> plink -V
 Plink: versão 0.69
 Plataforma de compilação: Windows de 64 bits
 Compilador: Visual Studio 2015 / MSVC ++ 14.0 (_MSC_VER = 1900)
 Origem commit: b1829b81b5c0d12dcc91f6b50b0b4d83c3df6a8e

Em seguida, use a opção -v (minúsculas v) como mostrado abaixo para obter uma saída mais detalhada.

  C: \> plink -v serviço devdb httpd reiniciar
 Conectando à 192.168.101.1 porta 22
 Reivindicamos versão: SSH-2.0-PuTTY_Release_0.69
 Versão do servidor: SSH-2.0-OpenSSH_5.3
 Acreditamos que a versão remota tem um erro de solicitação de canal SSH-2
 Usando o protocolo SSH versão 2
 Fazendo troca de grupo Diffie-Hellman
 Fazendo troca de chaves Diffie-Hellman com hash SHA-256
 O servidor também possui a chave de host ssh-dss, mas não a conhecemos
 A impressão digital da chave do host é:
 Ssh-rsa 2048 2f: d2: c1: 7f: db: a1: 16: 21: d2: f4: 31: f9: ae: 96: be: 89
 Inicialização do cliente AES-256 SDCTR-> criptografia do servidor
 Inicializado HMAC-SHA1 cliente-> servidor MAC algoritmo
 Inicializado servidor AES-256 SDCTR-> criptografia de cliente
 Inicializado HMAC-SHA1 servidor-> cliente MAC algoritmo
 Usando o nome de usuário "root".
 Usando o SSPI do SECUR32.DLL
 Tentando a autenticação GSSAPI
 Pedido de autenticação GSSAPI recusado
 Senha enviada
 Acesso concedido
 Sessão de abertura como canal principal
 Canal principal aberto
 Iniciou um shell / comando
 ...

 Estado de saída do comando do servidor enviado 0
 Desconectado: todos os canais fechados

8. Especificar a porta SSH como opção de encaixe

Por padrão para SSH, ele se conectará à porta 22. Mas, no seu servidor Linux, se o SSH estiver configurado para ser executado em uma porta diferente, use a opção -P em plink para especificar a porta.

No exemplo a seguir, o plink se conectará ao servidor Linux remoto na porta 25.

  C: \> plink root@192.168.101.1 -P 25 crontab -l

Quando você usa uma sessão PuTTY salva e opção -P, em vez de usar a porta da sessão salva, ela usará a porta fornecida.

  C: \> plink devdb -P 25 crontab -l

9. Arquivos de log Plink para conexões SSH

Para o protocolo SSH no Plink, existem algumas opções úteis de registro.

A seguinte opção -sshlog salvará os logs no arquivo fornecido (sshlog.txt).

  C: \> plink devdb -sshlog sshlog.txt (data; nome do host; ls -l)

Este é o conteúdo parcial da saída sshlog.txt

  = ~ = ~ = ~ = ~ = ~ = ~ = ~ = ~ = ~ = ~ = ~ = PuTTY log 2017.05.11 11:40:57 = ~ = ~ = ~ = ~ = ~ = ~ = ~ = ~ = ~ = ~ = ~ =
 Registro de eventos: gravação de novo log de sessão (modo de pacotes SSH) para arquivo: sshlog.txt
 Registro de eventos: conectando a 192.168.101.1 porta 22
 Registro de eventos: reivindicamos a versão: SSH-2.0-PuTTY_Release_0.69
 Registro de eventos: versão do servidor: SSH-2.0-OpenSSH_5.3
 Registro de eventos: acreditamos que a versão remota tenha um erro de solicitação de canal SSH-2
 Registro de eventos: usando o protocolo SSH versão 2
 Pacote de saída # 0x0, tipo 20 / 0x14 (SSH2_MSG_KEXINIT)
   00000000 ed 8e ff c9 d3 67 cf 95 0e 8f 1a 4d 6d 65 6f 25 ..... g ..... Mmeo%
   00000010 00 00 00 f0 63 75 72 76 65 32 35 35 31 39 2d 73 .... curve25519-s
 ......

 Pacote de saída # 0xc, tipo 96 / 0x60 (SSH2_MSG_CHANNEL_EOF)
   00000000 00 00 00 00 ....
 Pacote de saída # 0xd, digite 97 / 0x61 (SSH2_MSG_CHANNEL_CLOSE)
   00000000 00 00 00 00 ....
 Registro de eventos: desconectado: todos os canais fechados

Para um registro mais detalhado, use a opção -sshrawlog. Observe que o tamanho do arquivo será maior que o anterior, pois isso irá armazenar muito mais informações no arquivo de log.

Além disso, isso levará mais tempo para executar do que o comando acima, uma vez que a opção sshrawlog coleta mais informações de logs do que a opção sshlog normal.

  C: \> plink devdb -sshrawlog sshrawlog.txt (data; nome do host; ls -l)

10. Especificar protocolo SSH (SSH-1 ou SSH-2)

Por padrão, ele usará o protocolo SSH-2, que também pode ser especificado usando a opção -2 como mostrado abaixo.

  C: \> plink devdb -2 (nome do host; ls -l)
 Devdb.thegeekstuff.com
 Total 326380

Para o protocolo SSH-1, use -1 opção como mostrado abaixo. Se o seu servidor não suportar, você receberá o seguinte erro.

  C: \> plink devdb -pw -1 (nome do host; ls -l)
 FATAL ERROR: protocolo SSH versão 1 exigido pela nossa configuração, mas não fornecido pelo servidor

11. Especificar protocolo IP (IPv4 ou IPv6)

Por padrão, ele usará IPv4, que também pode ser especificado usando a opção -4 como mostrado abaixo.

  C: \> plink devdb -4 (nome do host; ls -l)

Para usar a opção IPv6, use-6 como mostrado abaixo.

  C: \> plink devdb -6 (nome do host; ls -l)

12. Use o Arquivo de Chave Privada para Autenticação com o Plink

Use a opção -i para especificar a localização do arquivo de chave particular que deve ser usado para autenticação.

No exemplo a seguir, ele usará o arquivo devdb.ppk do diretório C: \ Downloads.

  C: \> plink -i "C: \ Downloads \ devdb.ppk" root@192.168.101.1 nome do host

Nota: Você receberá “Servidor recusou a nossa chave”, se a chave fornecida não estiver configurada corretamente para ser usada com seu Servidor Linux.

Se o arquivo de chave não for encontrado (por exemplo, quando você der um nome de diretório errado), você receberá o seguinte erro:

  C: \> plink -i "D: \ Data \ devdb.ppk" root@192.168.101.1 nome do host
 Não é possível usar o arquivo de chave "C: \ Users \ ramesh \ Downloads \ devdb.ppk" (incapaz de abrir o arquivo)
 Senha do root@192.168.101.1: 

Se você especificar uma chave que não seja do formato apropriado, você receberá a seguinte mensagem de erro.

  C: \> plink -i "C: \ Downloads \ devdb.key" root@192.168.101.1 nome do host
 Não é possível usar o arquivo de chave "C: \ Downloads \ devdb.key" (chave privada OpenSSH SSH-2 (formato PEM antigo)

13. Opções adicionais de habilitação e desativação para o Plink SSH

Você também pode usar as seguintes opções SSP de plink:

  • -X para habilitar o encaminhamento X11
  • -X para desativar o encaminhamento X11
  • -A para habilitar o encaminhamento do agente
  • -a para desativar o encaminhamento do agente
  • -t para habilitar a atribuição de pty
  • -T para desativar a atribuição do pty
  • -noagente para desativar o uso de Pageant
  • -agente para permitir o uso de Pageant
  • -C para habilitar a compressão

14. Fingerprint e HostKey com Plink

Use a opção -pgpfp que exibirá os detalhes da impressão digital PGP para PuTTY. Normalmente, você pode usar isso para estabelecer confiança do executável plink.exe para outro programa ou executável ao qual você está tentando se conectar.

  C: \> plink -pgpfp
 PuTTY Master Key até 2015 (RSA, 4096-bit):
   440D E3B5 B7A1 CA85 B3CC 1718 AB58 5DC6 0467 6F7C

 Chave mestre PuTTY original (RSA, 1024-bit):
   8F 15 97 DA 25 30 AB 0D 88 D1 92 54 11 CF 0C 4C
 Chave mestre original PuTTY (DSA, 1024 bits):
   313C 3E76 4B74 C2C5 F2AE 83A8 4F5E 6DF5 6A93 B34E

Além disso, você pode usar o hostkey na plink para se conectar ao servidor remoto de acordo com a opção -hostkey.

  C: \> plink devdb -hostkey aa: dd: b1: f1: f8: 00: 4c: 36: 63: ec: cf: 92: 16: e6: df: 26 nome do host

15. Plink -batch opção para Windows Batch Files

Se você estiver executando o plink dentro de um arquivo em lote do Windows, é recomendável que você use a opção -batch.

  C:> plink -batch devdb [complex-linux-command]

No exemplo acima, se o comando complexo-linux falhar, ou pedir uma entrada do usuário, ou trava, etc., o script do Windows Batch não estará aguardando. Em vez disso, o plink apenas abandonará o comando e o script em lote falhará.

Este é provavelmente o que você esperaria acontecer em vez de seu trabalho de arquivo em lote do Windows apenas esperando ou pendurado.

Então, use a opção -batch no plink quando estiver escrevendo scripts de lote do Windows usando o plink.

Anúncios