Como usar o SSH para executar um script de shell em uma máquina remota?

2

Eu gostaria de executar alguns comandos sudo privilege usando o script bash do local para o servidor remoto via ssh sem passar vários comandos separando de ponto-e-vírgula no ssh. Eu tentei abaixo do passo, mas tenho erro.

ssh -t user@remoteip 'bash -s' < services.sh

Embora eu tenha usado a opção -t, ele ainda mostra a mensagem de erro.

sudo: sorry, you must have a tty to run sudo
    
por BDN 07.07.2017 / 22:36

2 respostas

3

Isso pode ocorrer quando Defaults requiretty não está comentado em /etc/sudoers .

A correção é comentar essa linha:

#Defaults    requiretty

Lembre-se de editar apenas /etc/sudoers usando o comando visudo **.

** O comando visudo só pode ser executado pelo usuário root .

    
por 08.07.2017 / 00:25
1

Você também pode tentar:

ssh -t user@remoteip <<'EOF'
command1
command2
command3
EOF

Embora seja provavelmente melhor salvar o script com os comandos desejados na máquina remota e apenas chamá-lo assim que você efetuar login.

    
por 08.07.2017 / 00:10