Resolvido e com tutorial- Acesso SSH pedindo senha

Iniciado por velox256, 17 de Julho de 2014, 13:45

tópico anterior - próximo tópico

velox256

Prezados, segui um tuto aqui de desligar/reiniciar máquinas via SSH que pode ser visto aqui:

Citarhttp://ubuntuforum-br.org/index.php/topic,96985.0.html

mas o negócio, por mais engraçado que pareça, não está dando certo.

Instalei o openssh-server nas máquinas clientes e tal, mas na hora de conectar usando ssh root@ipdamaquinaquevouentrar, pede a senha da máquina, eu digito a mesma mas não vai dá:

CitarPermission denied, please try again.

e eu tenho certeza absoluta que o root "existe" (sudo passwd root) pois eu o criei e que a senha está correta. Estou tentando fazer a mesma coisa do post que eu coloquei aqui, que é desligar/reiniciar máquinas clientes a partir de um "servidor" mas o bagulho não funciona. Alguma luz? Tentei isso aqui também:

Citarhttp://ubuntuforum-br.org/index.php/topic,109918.0.html

mas dá na mesma...

Outra coisa, esse comando aqui:

Citarssh-keygen -b 4096 -t rsa

é pra fazer em todas as máquinas clientes?

Essa aqui sei que é pra fazer no servidor:

Citarscp /root/.ssh/id_rsa.pub root@IP:/root/.ssh/
ssh root@IP "cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys"

Alguma dica? :)
Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.

jeflui

Utliza o comando abaixo que faz a cópia da chave automaticamente para você.
ssh-copy-id root@<IP>

velox256

Não faz, chefia, pede senha, ESSE é o problema... ;)

Citação de: jeflui online 17 de Julho de 2014, 14:31
Utliza o comando abaixo que faz a cópia da chave automaticamente para você.
ssh-copy-id root@<IP>

Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.

zekkerj

Olá velox256, esqueceu que máquina Ubuntu não tem senha de root? ;)

Faça o seguinte, faça o acesso com o usuário administrador da máquina de destino:

ssh fulano@maquina

Chegando lá, vc vai abrir uma sessão de shell super-usuário.

sudo -s

Daí, já como root (#) vá ao diretório /root

cd /root

Ainda como root, faça uma conexão SSH pra própria máquina, pra criar o diretório ".ssh" com as permissões corretas (0600).

ssh localhost ls

Ele vai pedir pra confirmar a assinatura da máquina, aceite. Em seguida, confirme que o diretório ".ssh" existe.

cd .ssh

Agora vc vai criar nesse diretório (/root/.ssh) um arquivo chamado authorized_keys, com o conteúdo da chave pública RSA que vc quer autorizar.
Se ele já existir, basta anexar a próxima chave pública autorizada.

Se sua chave for DSA, use o arquivo "authorized_keys2".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

velox256

Já resolvi, estava interpretando errado algo que eu mesmo tinha feito tempos atrás, hehehehe...


Citação de: zekkerj online 17 de Julho de 2014, 16:05
Olá velox256, esqueceu que máquina Ubuntu não tem senha de root? ;)

Faça o seguinte, faça o acesso com o usuário administrador da máquina de destino:

ssh fulano@maquina

Chegando lá, vc vai abrir uma sessão de shell super-usuário.

sudo -s

Daí, já como root (#) vá ao diretório /root

cd /root

Ainda como root, faça uma conexão SSH pra própria máquina, pra criar o diretório ".ssh" com as permissões corretas (0600).

ssh localhost ls

Ele vai pedir pra confirmar a assinatura da máquina, aceite. Em seguida, confirme que o diretório ".ssh" existe.

cd .ssh

Agora vc vai criar nesse diretório (/root/.ssh) um arquivo chamado authorized_keys, com o conteúdo da chave pública RSA que vc quer autorizar.
Se ele já existir, basta anexar a próxima chave pública autorizada.

Se sua chave for DSA, use o arquivo "authorized_keys2".
Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.

selvaking

Se já resolveu edita o título e coloca resolvido, assim evita que quem queira ajudar entre desnecessariamente num tópico já resolvido.
Dê-me um computador com o Tux que movo o mundo!

Linux User #323049

Rockwave

Citação de: selvaking online 18 de Julho de 2014, 13:49
Se já resolveu edita o título e coloca resolvido, assim evita que quem queira ajudar entre desnecessariamente num tópico já resolvido.
Coloca também o que você fez para resolver o problema.

velox256

#7
Atendendo a ambos os pedidos...

1- Ir em cada máquina cliente e desbloquear (e não criar, valeu a observação, zekkerj) o usuário root; faça também na máquina servidora só pra garantir:

Citar# passwd root

2- Instalar o ssh nas máquinas clientes e também na máquina servidora:

Citar# apt-get install ssh (vai instalar também o pacote openssh-server nas máquinas)

3- Ir na máquina que vai ser a controladora do ssh, ou seja, a máquina que vai ser a que vai desligar os terminais e digite o seguinte comando:

Citar# ssh-keygen -b 4096 -t rsa

4- Vai perguntar onde a chave vai ser salva (/root/.ssh/), se a pasta não existir (o que eu acho que já existe...), crie-a. Depois vai perguntar a senha, basta apertar ENTER para deixá-la em branco. Pronto, chaves criadas.

5- Agora devemos copiar o arquivo id_rsa.pub criada no servidor (e que está na pasta /root/.ssh/) para a pasta /root/.ssh/ de cada uma das máquinas clientes. Era aqui que estava dando o rolo, qdo eu tentava copiar via linha de comando do servidor para as máquinas clientes, pedia senha. Então copiei na mão mesmo. Copiei o arquivo para uma pasta compartilhada no servidor e fui nas máquinas clientes e copiei do servidor para elas.

6- Uma vez copiado o arquivo, em cada máquina cliente devemos digitar o seguinte comando (dentro da pasta /root/.ssh/ da máquina cliente):

Citar# cat id_rsa.pub >> authorized_keys

7- Reinicie a máquina cliente.

Agora basta ir no servidor, digitar como root "ssh root@ipdamáquinaquevaiserdesligada shutdown -h now" sem as aspas e a máquina vai ser desligada. Fiz um scriptizinho bem fajuto para "economizar" o comando:

Citar
ip=$(zenity --entry --text "Digite o número da máquina que você deseja desligar"); echo $ip
if [ "$2" = "" ]; then
ssh root@192.168.10.$ip | zenity --progress --pulsate --title="Desligando a máquina" --auto-close
fi

Depois disso basta salvar o arquivo com um nome sugestivo (como desligar), dar permissão de executável (# chmod +x nomedoscript), abrir o terminal como root e digitar ./nomedoscript. Vai aparecer a janela perguntando qual máquina deseja desligar, coloque o último octeto do ip dela na rede e dê OK.

Notem que a parte do "192.168.10." vai depender da rede local, no meu caso a faixa é essa mesmo. Só queria pedir a quem saca de script como colocar nesse mesmo script a opção de "deseja desligar mais alguma máquina?"; se digitar "sim" volta pra tela de digitar o número da máquina que se quer deligar; se digitar não o script fecha... :). Note que esse script é para escolher qual máquina na rede vai ser desligada, se você quiser desligar todas de uma vez, nesses mesmo post tem o link para o script que faz isso.

Finalizando, para o script funcionar direito, será necessário ir no servidor (a máquina que vai desligar as demais) e digitar o comando abaixo para cada uma das máquinas clientes serem adicionadas aos hosts confiáveis. Só basta fazer isso uma vez por máquina.

Citar# ssh root@ipdamáquinacliente

Citação de: Rockwave online 18 de Julho de 2014, 16:18
Citação de: selvaking online 18 de Julho de 2014, 13:49
Se já resolveu edita o título e coloca resolvido, assim evita que quem queira ajudar entre desnecessariamente num tópico já resolvido.
Coloca também o que você fez para resolver o problema.
Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.

zekkerj

Citação de: velox256 online 19 de Julho de 2014, 10:02
Atendendo a ambos os pedidos...

1- Ir em cada máquina cliente e criar o usuário root; faça também na máquina servidora só pra garantir:

Citar# passwd root
Isso não cria o usuário root, ele é criado na instalação. Vc apenas desbloqueou o login com ele, criando uma senha.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

velox256

#9
Pois é, me expressei mal, já editei o bagulho com citação, hehehe... :)

Citação de: zekkerj online 21 de Julho de 2014, 11:57
Citação de: velox256 online 19 de Julho de 2014, 10:02
Atendendo a ambos os pedidos...

1- Ir em cada máquina cliente e criar o usuário root; faça também na máquina servidora só pra garantir:

Citar# passwd root
Isso não cria o usuário root, ele é criado na instalação. Vc apenas desbloqueou o login com ele, criando uma senha.
Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.