Execute o script bash como sudo a partir do windows sem interação

1

Eu preciso executar um script bash como sudo em uma máquina Linux remota do TeamCity rodando em uma caixa do Windows. Eu posso executar o script bem a partir da linha cmd usando plink, mas me pedem uma senha. Eu preciso ser capaz de fazer isso sem ser solicitado a senha, a fim de executar a partir do teamcity.

Quais são minhas opções?

    
por Myles McDonnell 03.11.2015 / 13:56

3 respostas

1

Você precisa editar a configuração sudo no host em que deseja executar o script. Execute visudo como root e adicione uma linha como esta:

USERNAME ALL=(ALL) NOPASSWD: ALL

Substitua USERNAME pelo usuário com o qual você deseja executar o script. Isso deve permitir que o usuário use sudo sem digitar a senha. Você pode querer limitar o uso de sudo aos comandos que você realmente precisa. Procure nos sudoers usando visudo para exemplos de como conseguir isso.

    
por 03.11.2015 / 14:11
0

Se os dois sistemas estiverem seguros, você pode usar algo assim:

echo 'sudo_password' | sudo -S command

Esta opção deve ser usada com cuidado, pois usa a senha in clear e outros usuários conectados a essa máquina podem vê-la.

    
por 03.11.2015 / 14:17
0

Uma opção é apenas permitir acesso ssh diretamente à conta root da máquina. Você deve bloquear isso com uma chave privada e provavelmente protegê-la com senha. Adicione algo como o seguinte ao seu sshd_config:

PermitRootLogin yes
Match User root
  PasswordAuthentication no

Se você seguir esse caminho, poderá fazer com que essa chave execute o script de comando específico, independentemente do que foi especificado, adicionando command="" no arquivo ~ root / authorized_hosts, por exemplo,

command="/root/myscript" ssh-rsa AAAB3NzaC1yc2EAAAABIwAAADV4//KSz...
    
por 03.11.2015 / 15:40

Tags