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.