Permissão negada via acesso ssh

Iniciado por pootz, 07 de Outubro de 2017, 23:07

tópico anterior - próximo tópico

pootz

Olá,

Estou tentando fazer conexão SSH a partir do Windows 10 (usando cwrsync) para um servidor Ubuntu no Digital Ocean.

Configurei as chaves RSA tanto no lado do cliente (windows) quanto do lado do servidor (ubuntu), mas ao rodar o comando ssh -v root@serverIP, aparece a mensagem Roaming not allowed by server e depois pede pra mim logar informando a senha.

Procurando na internet, o pessoal fala que é para alterar as permissões da pasta /root/.ssh para 700 e o arquivo /root/.ssh/authorized_keys para 600, mas já fiz isso e não resolveu.

Caso eu desative o login por senha no arquivo sshd_config, ele aparece a seguinte mensagem de erro ao tentar me conectar via ssh: Permission denied (publickey).

agente100gelo

Por favor altere o título de sua mensagem. Não são permitidas mensagens em caixa alta.
Advogado e analista de sistema cearense.
Twitter: @glaydson

zekkerj

O usuário root é desativado no Ubuntu. Porque você quer ou precisa fazer um "ssh root@server"?
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

pootz

Citação de: zekkerj online 08 de Outubro de 2017, 08:38
O usuário root é desativado no Ubuntu. Porque você quer ou precisa fazer um "ssh root@server"?

Eu quero configurar um rsync para copiar os arquivos salvos no servidor para um servidor físico que roda Windows.

Referente ao root, tenho 3 outros servidores ubuntu configurados para se conectar automaticamente nesse mesmo server Ubuntu também para fazer rsync e funcionam sem problemas. Será que não é um problema causado pelo windows?

Tentei criar um usuário novo no linux e mesmo assim continua pedindo senha.

zekkerj

Não, é um problema causado por você querer usar o root. Use outro usuário, vá lá.
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

pootz

Citação de: zekkerj online 08 de Outubro de 2017, 15:04
Não, é um problema causado por você querer usar o root. Use outro usuário, vá lá.

Criei um novo usuário, configurei as chaves ssh nele e mesmo assim, ao tentar me conectar ele pede a senha do usuário.

Apenas para explicar como eu fiz, caso tenha feito algo de errado kk, eu digitei o comando adduser nome_user como root. Depois loguei com esse usuário, digitei ssh-keygen, depois fui na pasta .ssh do usuário, criei o arquivo authorized_keys, coloquei a chave pública do meu windows, salvei depois copiei a chave pública do ubuntu para esse usuário e colei no authorized keys do windows.

zekkerj

Vc está usando qual aplicativo no windows pra esse acesso? Lembro que no PuTTY, por exemplo, era preciso converter o arquivo da chave privada.
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

pootz

Citação de: zekkerj online 08 de Outubro de 2017, 20:35
Vc está usando qual aplicativo no windows pra esse acesso? Lembro que no PuTTY, por exemplo, era preciso converter o arquivo da chave privada.

Eu instalei um tal de cwrsync, que pelo oque eu entendi, ele permite rodar comandos linux no windows, como por exemplo o rsync. Daí eu acessei o cmd do windows e digitei ssh -v user@ip, daí ele disse deu as mensagens Permission denied (publickey) e pediu senha.

Apenas para conhecimento, o cwrsync cria uma pasta .ssh dentro do diretório dele também, daí eu criei uma chave rsa nessa pasta e na pasta do meu usuário lá dentro de users no disco C e tentei logar usando as 2 chaves, mas sem sucesso em ambos os casos.

zekkerj

Hmmm. Pode postar o conteúdo do arquivo /etc/ssh/ssh_config da máquina que vc pretende acessar?
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

pootz

Citação de: zekkerj online 08 de Outubro de 2017, 21:57
Hmmm. Pode postar o conteúdo do arquivo /etc/ssh/ssh_config da máquina que vc pretende acessar?

Aqui está:

# This is the ssh client system-wide configuration file.  See
# ssh_config(5) for more information.  This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.

# Configuration data is parsed as follows:
#  1. command line options
#  2. user-specific file
#  3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.

# Site-wide defaults for some commonly used options.  For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.

Host *
#   ForwardAgent no
#   ForwardX11 no
#   ForwardX11Trusted yes
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   GSSAPIKeyExchange no
#   GSSAPITrustDNS no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no

zekkerj

Vc ainda tem o arquivo de chave privada que criou, certo? Repita o comando ssh, mas agora assim:

ssh -i arquivo_chave_privada -v usuario@ip
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

pootz

Citação de: zekkerj online 09 de Outubro de 2017, 06:59
Vc ainda tem o arquivo de chave privada que criou, certo? Repita o comando ssh, mas agora assim:

ssh -i arquivo_chave_privada -v usuario@ip

Naveguei até a pasta aonde se encontra o arquivo id_rsa no meu windows e executei o comando ssh -i id_rsa -v user@ip e cotinuou a mesma coisa. Tentei seguir os passos desse link: https://help.ubuntu.com/community/SSH/OpenSSH/Keys, mas não tinha nada q eu já n tivesse testado :/

zekkerj

#12
Essa chave é a mesma que gerou a chave pública que vc usou no arquivo "authorized_keys" do destino, certo?

Vamos tentar ver isso acontecendo no próprio Linux, então, com uma nova chave.

execute os comandos abaixo na máquina de destino, confirme que eles funcionam.

# entrar no diretório .ssh dentro de sua pasta HOME
cd ~/.ssh

# gerar um novo par de chaves. Forneça uma senha p/ sua chave privada, ou aperte ENTER 2x p/ gerar a chave sem senha.
ssh-keygen -t rsa -b 2048 -f teste

# Copiar a chave pública p/ o usuário de destino. Neste ponto, você fornece a senha do usuário.
ssh-copy-id -i teste usuario@localhost

# Agora teste a conexão. Já não deve mais ser pedida a senha.
ssh -i teste usuario@localhost
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

pootz

Citação de: zekkerj online 09 de Outubro de 2017, 09:57
Essa chave é a mesma que gerou a chave pública que vc usou no arquivo "authorized_keys" do destino, certo?

Vamos tentar ver isso acontecendo no próprio Linux, então, com uma nova chave.

execute os comandos abaixo na máquina de destino, confirme que eles funcionam.

# entrar no diretório .ssh dentro de sua pasta HOME
cd ~/.ssh

# gerar um novo par de chaves. Forneça uma senha p/ sua chave privada, ou aperte ENTER 2x p/ gerar a chave sem senha.
ssh-keygen -t rsa -b 2048 -f teste

# Copiar a chave pública p/ o usuário de destino. Neste ponto, você fornece a senha do usuário.
ssh-copy-id -i teste usuario@localhost

# Agora teste a conexão. Já não deve mais ser pedida a senha.
ssh -i teste usuario@localhost


Olá, loguei como usuário root, naveguei até a pasta /root/.ssh, executei os comandos da seguinte forma:

cd /root/.ssh
ssh-keygen -t rsa -b 2048 -f ssh_user
ssh-copy-id -i ssh_user ssh_user@localhost
ssh -i ssh_user ssh_user@localhost


E funcionou sem problemas. Consegui logar como ssh_user a partir do usuário root sem senha.

zekkerj

Então provavelmente o problema anterior tem a ver com o formato do arquivo de chave.
Tenta ver se consegue exportar o arquivo "teste" pro Windows, consulte o manual do seu software pra ver se é necessário algum tipo de conversão.
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