Codifique para enviar o conteúdo de um arquivo de texto para uma janela de terminal [closed]

2

Eu estou procurando por algum código para poder enviar o conteúdo de um arquivo de texto para a janela do terminal com o pressionar de um botão ou digitando um alias no terminal. Se eu explicar o que estou tentando fazer, ficará mais claro.

Eu uso uma máquina Ubuntu para gerenciar alguns equipamentos, atualmente eu tenho que configurar para que quando eu digito um alias (por exemplo, equipment1) ele auto SSH's em equipment1. Ele também envia uma senha que me permite entrar sem ter que digitá-lo. O problema é que este equipamento requer uma segunda senha para entrar em um nível alto e privilegiado. Depois que ele faz o login usando a primeira senha, ele exibe um botão OK com o texto mostrando a segunda senha que eu tenho que copiar e colar no terminal para entrar no nível superior.

Eu estou atrás de algum código que lerá automaticamente o conteúdo de um arquivo de texto contendo algum código e a segunda senha e o enviará automaticamente para a janela do terminal para que eu não tenha que recortar e colar a partir do texto do botão . Eu não me importo se ele for executado quando eu clicar em um botão OK, mas eu quero que ele execute o código para acessar o equipamento sem exibi-lo na tela.

O que torna difícil é que, uma vez que eu faça o login no equipamento na primeira vez que eu não tenho acesso ao código do terminal, eu estou SSHed no equipamento, então ele tem que ser capaz de rodar tudo de uma vez .

Espero que isso seja informação suficiente para alguém entender o que estou tentando fazer e me ajudar.

Toda ajuda é muito apreciada. Obrigado pela leitura.

    
por user439701 14.08.2015 / 21:45

1 resposta

0

Armazenar senhas geralmente está errado . O login através de ssh armazenar a senha do usuário em ~/.bashrc (e / ou no histórico dos comandos) não é seguro por razões óbvias; pode-se usar ssh keys, como sugerido nos comentários por lemonslice.

No entanto, se este é o caminho que você deseja seguir, basta enviar a senha para o comando ssh ; usar echo com a opção -e irá escapar de seqüências de escape, como \n , permitindo que você falsifique o hit da tecla Return e até mesmo passe por vários prompts:

echo -ne 'password\n' | ssh user@host
user@debian ~ % echo -ne 'password1\n' | ssh user@localhost
Pseudo-terminal will not be allocated because stdin is not a terminal.
user@localhost's password: 

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
zsh: command not found: password1
user@debian ~ % echo -ne 'password1\npassword2\npassword3\n' | ssh user@localhost
Pseudo-terminal will not be allocated because stdin is not a terminal.
user@localhost's password: 

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
zsh: command not found: password1
zsh: command not found: password2
zsh: command not found: password3
    
por kos 14.08.2015 / 22:09