Como fazer login em uma conta de usuário remoto usando senha e executar um conjunto de comandos?

0

Eu quero executar comandos em uma máquina remota. O usuário remoto requer autenticação de senha. Estou recebendo o seguinte erro ao usar o script de amostra abaixo, Este é o conteúdo do script de amostra applmgr.sh

#!/bin/bash    
ssh [email protected] -c "cd ; touch testing ; cp testing testing_is ;mv testing 
working" <<!
applmgr      ## Password of applmgr user##
!

Quando executado, segue abaixo a mensagem

[oracle@dbsrvr ~]$ sh applmgr.sh
standard in must be a tty
    
por Girish Sunkara 11.05.2017 / 06:09

2 respostas

3

Colocar suas senhas em scripts é uma prática de segurança muito ruim. Mas se você precisar fazê-lo por Razões, poderá usar uma ferramenta como sshpass para essa finalidade.

Sugiro, no entanto, que você procure usar a autenticação de par de chaves para tarefas como essas.

Se você estiver no host a.example.com e tiver trabalhos para executar em b.example.com , poderá configurar-se para fazer isso com os seguintes comandos:

  • ssh-keygen - Isso criará um par de chaves público / privado a ser usado para autenticação
  • ssh-copy-id [email protected] - Isso definirá sua chave pública no host remoto para uso. Ser-lhe-á pedida a sua senha quando executar este comando, mas daí em diante as chaves serão usadas para autenticar.

A partir desse ponto, você pode usar e. g. ssh [email protected] 'command' para executar command no host remoto.

    
por 11.05.2017 / 06:21
0

Dê uma olhada no comando expect , este é o sistema criado para interagir com aplicativos e simular o comportamento do usuário.

(mas, claro, ignorar as senhas em favor das chaves é a verdadeira solução)

    
por 12.05.2017 / 21:53