Crie um arquivo em lotes ou atalho para PuTTY (ssh) que abre uma sessão e executa um comando

9

Muitas vezes me vejo abrindo uma sessão SSH para executar o mesmo comando único. Eu tenho tudo configurado para login sem digitar uma senha (Via SSH Key-Based Auth), então eu queria saber se havia uma maneira de criar um atalho ou um arquivo em lotes no Windows que iria carregar PuTTY ou um programa semelhante, em seguida, disparar que comando (e provavelmente saída se o resultado for bom).

    
por FreeSoftwareServers 19.12.2017 / 13:20

6 respostas

13

Use a linha de comando PuTTY versão plink.exe para iniciar uma conexão SSH com um host de escolha. Use a chave -ssh para se conectar ao SSH. Com a opção -m , você pode incluir um arquivo de comando:

plink.exe -ssh host1 -m C:\path\to\commands.txt

Você pode fazer o download de plink.exe de aqui.

O último passo seria criar um atalho incluindo plink.exe com os parâmetros desejados.

Confira a documentação do Plink para outros parâmetros: Documentação do Plink.exe

    
por 19.12.2017 / 14:03
8

Para automatizar a execução de um comando, use Plink (do pacote PuTTY) , não PuTTY em si.

Plink aceita um comando em sua linha de comando:

plink.exe user@host command

Se você quiser continuar usando o PuTTY, use -m switch para especificar um arquivo de comando (o Plink também suporta o parâmetro -m ).

    
por 19.12.2017 / 13:56
5

Você pode usar configurações de massa para isso.

Carregue a massa e configure sua sessão.

Digite o comando remoto que você gostaria de executar aqui:

Então,antesdeclicarem" Open ", volte para a aba " Session " (no topo), e salve sua configuração.

Agora, crie um atalho para putty.exe , adicionando o -load flag, por exemplo:

%PATH_TO_PUTTY%\putty.exe -load my_config

Agora, você pode simplesmente clicar no atalho e ele irá carregar sua sessão, executando o seu comando.

    
por 19.12.2017 / 13:40
1

Você também pode procurar softwares como mRemoteNG, MOBAxTerm ou SecureCRT, que gerenciarão suas conexões SSH para você. Isso também vincula as sessões PuTTY salvas para que você possa aplicar um modelo à sessão.

    
por 19.12.2017 / 16:18
1

Se você estiver usando o Windows 10, talvez esteja interessado em saber que a Microsoft supostamente tem uma versão beta do OpenSSH (cliente e servidor ):

[…] go to “Manage Optional Features” then + “Add a feature”. You can then scroll down the list and find the OpenSSH Client (Beta) and OpenSSH Server (Beta) features in Windows. The idea of running another remote service on Windows can be daunting so we do not blame you if you do not want to install the server.

Once installed, you can simply fire up your command line and use the OpenSSH client by typing ssh followed by the command such as ssh ubuntu@someIP.

Here is the current (as of November 28, 2017) ssh command usage guide we are getting with the Windows OpenSSH Client:

C:\WINDOWS\system32>ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-E log_file] [-e escape_char]
           [-F configfile] [-I pkcs11] [-i identity_file]
           [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
           [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
           [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
           [user@]hostname [command]
C:\WINDOWS\system32>

Se isso funcionar, você poderá usar ssh como faria em um * Nix:

C:\WINDOWS\system32>ssh user@host "ls -l ~"
    
por 19.12.2017 / 21:45
0

Este é o "CMD final" que eu posso salvar no meu FileServer e criar um atalho no meu Desktop.

::FreeSoftwareServers
::Automated Opening of SSH Tunnel & Execute CMD on Remote Host
::https://superuser.com/questions/1278434/create-a-batch-file-or-shortcut-to-putty-ssh-that-opens-a-session-and-runs-a-c

set puttydir="C:\Program Files\PuTTY"
set exe=plink.exe
::Profile must exist in PuTTY
set remotehost=FileServer
set remotecmd="chmod 777 /mnt/mdadm/torrents -R"

cd %puttydir% 

%exe% %remotehost% %remotecmd%

::Test First Manually in CMD Prompt
::Note Remote Host does NOT have access to BashRC Alias's
::start "C:\Program Files\PuTTY\" plink.exe -ssh FileServer touch /tmp/testfile
::start "C:\Program Files\PuTTY\" plink.exe -ssh FileServer ~/script.sh
    
por 21.12.2017 / 13:22