Bash + SSH

1. Bash + SSH

Novato
novato-linux

(usa Debian)

Enviado em 10/08/2015 - 13:17h

Boa tarde, estou criando um script que no final preciso executar alguns comandos como root em outro servidor
Então tenho basicamente
script no servidor 1 --->SSH---> servidor 2

Neste servidor 2, o SSH esta configurado para não permitir login direto com usuário root, então conecto com usuário comum, porem ai não estou conseguindo subir pra usuário root e em seguida executar os comandos

tentei
ssh user@servidor2 'su root -c "comando"'

porem o su interpreta o "comando" como se fosse o nome de um usuário e retorna um erro que não existe nenhum usuário com aquele nome

Então o que eu preciso seria +- isso, executar de uma vez a elevação de privilégios e por cima já executar o comando com permissões de root


  


2. Re: Bash + SSH

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 10/08/2015 - 14:35h

Olá,

Tenta assim:

ssh -T user@hostname 'sudo su -' < script.sh 


abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


3. Re: Bash + SSH

Novato
novato-linux

(usa Debian)

Enviado em 10/08/2015 - 15:10h

tonyhts escreveu:

Olá,

Tenta assim:

ssh -T user@hostname 'sudo su -' < script.sh 


abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


usando sudo su minha senha de root não funciona, da como senha inválida




4. Re: Bash + SSH

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 10/08/2015 - 18:54h

Opa! Desculpe a demora. Correria ta osso por aqui.

São varios comandos que precisa executar ou apenas 1, 2?

Aqui tenho alguns scripts que executam comandos em servers remotos. Aqui na empresa temos mais de 1k servers rodando debian/ubuntu-servers e cada grupo de servers tem suas peculiaridades, então preciso aplicar diversas maneiras. Talvez alguma delas te ajude. São elas:

Caso 1) Mudo a diretiva PermitRootLogin para yes no arquivo /etc/ssh/sshd_config.

Caso 2) Adicione ao /etc/sudoers a linha abaixo:
totomote ALL = NOPASSWD: /sbin/COMANDO1, /sbin/COMANDO2, /sbin/COMANDO3 

Isso fazer com que o usuário totomote, tenha permissão de executar os comandos 1, 2 e 3.
para alterar bastar rodar no server remoto:
sudo visudo 

e adicionar no fim do arquivo a linha mencionada acima.

Caso 3) Uso o sshsudo do pacote sshpass (RARAMENTE eu o uso, pois a segurança é baixissima.) Não recomendo.

Caso 4) Copio o script para o ser remoto e o programo para executar (como root) num determinado dia/horário (com CROn ou o comando at).

Abs,



---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts