Como passar a senha no bash sem pedir para digitar?

0

O que eu queria fazer é: executar um script bash do meu terminal local para executar um arquivo jar em uma instância do EC2. Mas, para executar o script, terei que primeiro fazer login com credenciais .pem e, em seguida, fazer su admin e digitar a senha do administrador para obter acesso de execução. O comando que eu descobri até agora é assim:

ssh -i ~/.ssh/my_credentials.pem -t ${EC2IP} 'su admin' "ADMIN_PASSWORD" 'cd /tmp' 'java -jar my-program.jar'

Mas ainda estou solicitando que eu digite ADMIN_PASSWORD e, depois disso, meu terminal será conectado a essa máquina EC2, que não é o que eu queria, só quero terminar todos os comandos e continuar com outra Instância do EC2.

Como eu poderia conseguir isso, por favor? Muito obrigado!

    
por FisherCoder 08.03.2017 / 20:51

2 respostas

0

não há solução adequada para o seu problema. Talvez você possa alterar algumas regras de segurança em /etc/pam.d/su . Mas não tenho certeza se e como.

Eu sei porque você não pode usar ssh em combinação com su ...
su se destina a rodar no terminal do servidor, ou com outras palavras: su precisa do correto TTY para se comunicar.

Passar uma senha para su também não funciona.
A maioria dos programas que usam uma senha tem a opção de colocar o passowrd nela, infelizmente, su use somente promt.

Um método NÃO recomendado seria este .

Você pode evitar usar su conectando-se por meio de ssh e nome de usuário admin,
ou dando os direitos para o usuário que você estava usando em primeiro lugar.

Espero que isso aconteça.

    
por 08.03.2017 / 23:05
0

Não faça isso. Use sudo em vez disso. Você provavelmente precisará comentar a seguinte linha de / etc / sudoers no destino:

Defaults    requiretty

Supondo que você faça isso de qualquer maneira, use esperar para fazer isso para você: link

Mas, sério, não faça isso.

    
por 09.03.2017 / 01:30