Como digitar comandos no PuTTY criando um arquivo de lote?

3

Eu criei um arquivo .bat que leva automaticamente o acesso ao servidor SSH (Jump Server). Agora, tenho alguns comandos que gostaria de acertar nessa janela.

Para um ex. (Para ter acesso root)

usrun -u root rush

Com este comando, ele me pedirá para digitar a senha.

Então, como posso conseguir isso totalmente através do arquivo .bat ?

    
por Umang 22.07.2016 / 08:54

1 resposta

4

Para executar comandos automaticamente usando o PuTTY, use o -m alternar para passar um arquivo de texto com o (s) comando (s) para executar, como:

putty.exe -ssh user@host  -m commands.txt

Onde o commands.txt conteria

usrun -u root rush

Mas isso não irá ajudá-lo com a senha, pois isso é uma entrada para o comando usrun , não um comando por si só, então o -m é inútil aqui. Eu não sei o usrun , então eu não posso dizer se ele tem uma maneira de "autenticar" qualquer outro método ao "digitar" uma senha. Em geral, sempre que você está tentando automatizar a digitação de senha, você está fazendo as coisas erradas. É um risco de segurança. Verifique sempre se existe uma maneira melhor (= mais segura).

Outra questão são os comandos adicionais. Se todos os comandos que você deseja executar forem executados no mesmo ambiente / shell, você poderá colocá-los no commands.txt linha por linha.

command1
command2

Embora note que nem todos os servidores SSH suportam várias linhas. Maioria faz embora. Se não, você sempre pode usar sua maneira específica de servidor / shell para executar múltiplos comandos em uma única linha como:

command1 && command2

Mas se os comandos adicionais forem realmente subcomandos do primeiro comando, o que é o caso de comandos como su , sh , bash , ssh , ftp , etc (e pode ser o caso com o usrun ), os comandos adicionais são, na verdade, uma entrada para o primeiro comando, não autônomo, do ambiente / shell de nível superior. Na verdade, é um problema idêntico ao problema de entrada de senha acima.

Ao contrário do problema de senha, com subcomandos, o comando principal pode ter outro mecanismo para fornecê-los, em vez de usar entrada.

Dito isso, você pode usar Plink (ferramenta de conexão de linha de comando do PuTTY) em vez de PuTTY. É uma ferramenta do pacote PuTTY que funciona como o PuTTY, mas é um aplicativo de console, não de GUI. Como tal, pode usar o redirecionamento de entrada / saída. Assim, você pode redirecionar até mesmo uma senha ou subcomandos do comando principal de um arquivo, como se os tivesse digitado em um console. E de qualquer maneira, o Plink é a ferramenta para automatizar tarefas , não o PuTTY.

echo usrun -u root rush>input.txt
echo password>input.txt
echo command_for_usrun>input.txt
plink -ssh user@host < input.txt

Como alternativa, use o KiTTY com sua opção -cmd que faz o que você deseja. O KiTTY é um aplicativo GUI (é um clone do PuTTY). Sua opção -cmd basicamente simula a digitação, por isso não tem o problema com entradas (senha e subcomandos) para comandos. Mas achei pouco confiável. Eu realmente não recomendo. Mas você pode achar que é suficiente para sua tarefa.

    
por 22.07.2016 / 09:49