Como executar um script no Ubuntu via SSH como superusuário?

2

Então eu tenho um script que precisa ser executado remotamente como root. Este não é um problema com a maioria das distribuições Linux, pois elas possuem uma conta root. Mas como o Ubuntu não, executar qualquer coisa como root requer um processo de duas etapas para inserir a senha da conta duas vezes - uma vez para efetuar login e uma vez para o sudo. O processo SSH para iniciar o script é automatizado, portanto, não pode pausar a entrada do usuário para a segunda solicitação de senha.

Alguém sabe, menos do que hackear o Ubuntu para reativar a raiz (e não uma opção), se a execução autônoma do script SSH com privilégios de superusuário na máquina de destino é possível? Além disso, não tendo experiência com o Debian, o Debian também se comporta dessa maneira?

    
por Irinotecan 22.04.2010 / 00:16

3 respostas

1

Você pode usar ssh usando somente autenticação baseada em chave e, em seguida, editar o arquivo sudoers para não exigir uma senha. Isso eliminará a senha nas duas etapas descritas por você.

Para ver o acesso ssh com base na chave ssh:

ssh-keygen
ssh-copy-id dest-server

E para o arquivo sudoers:

sudo visudo -f /etc/sudoers
#uncomment the following and then add yourself to the sudo group
# %sudo ALL=NOPASSWD: ALL

Melhor seria não exigir nenhuma senha para o sudo apenas para os comandos necessários para automatizar essa função específica. Veja minha resposta aqui para isso.

Referências:
Configurando um usuário sem uma senha

Como você configura o ssh para autenticar usando chaves em vez de um nome de usuário / senha?

    
por 22.04.2010 / 00:20
1

This isn't a problem with most Linux distros since they have a root account. But since Ubuntu does not

Esta é uma sentença séria? Ainda estou para ver um único sistema * nix sem root conta.

sudo su

e você é a raiz. Depois disso, use passwd para definir a senha de root. E BAM! você é capaz de logar como root (mas somente se você habilitar o RootLogin em ssh)!

UPDATE: ou use as teclas ssh como outras sugeriram.

    
por 22.04.2010 / 00:19
0

Por padrão, conectar como a conta root é possível. Você só precisa configurar suas chaves ssh para a conta root. Adicione sua chave pública ao /root/.ssh/authorized_keys

Você também pode criar uma conta de serviço para login que tenha configuração sudo com o NOPASSWD.

serviceaccount ALL = NOPASSWD: ALL

No Debian, por padrão, a conta root terá uma senha atribuída durante a instalação. Porém, se você usar o instalador do modo expert, você pode escolher uma opção que desative a conta root e configure o sudo exatamente como o Ubuntu. Eu prefiro a conta root desativada porque temos muitos administradores, e quero que as pessoas façam login como elas mesmas e usem o sudo para executar tarefas administrativas para que um log de atividades raiz seja criado.

    
por 22.04.2010 / 00:20

Tags