ssh senha em branco, mas ainda pedindo

1

Eu criei um novo usuário e uma nova chave, mas quando eu acesso remotamente, pedi a frase-senha, mas não defini uma. Eu também refeito para checar três vezes. Abaixo estão o comando que eu corri e erro. Alguém pode ver algum erro óbvio com meus comandos para criar a chave?:

useradd -m -d /home/webuser -s /bin/bash webuser
su webuser
ssh-keygen -t rsa
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm id_rsa.pub

ssh webuser@ip_of_target_server
debug1: Found key in /root/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /root/.ssh/id_rsa ((nil)),
debug2: key: /root/.ssh/id_dsa ((nil)),
debug2: key: /root/.ssh/id_ecdsa ((nil)),
debug2: key: /root/.ssh/id_ed25519 ((nil)),
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug1: key_parse_private2: missing begin marker
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/id_rsa':
debug2: no passphrase given, try next key
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /root/.ssh/id_ecdsa
debug3: no such identity: /root/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /root/.ssh/id_ed25519
debug3: no such identity: /root/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
    
por Peter Jackson 20.04.2017 / 23:20

2 respostas

3

Você está misturando várias coisas.

Você não definiu uma senha para o usuário que você criou para que efetivamente não possa fazer o login usando uma senha, para que o SSH não a solicite.

No entanto, quando você criou sua chave SSH, sua senha protegeu a chave. Quando ele tenta se conectar ao servidor, ele precisa ler essa chave para verificar sua identidade e, portanto, solicita a senha da chave.

Além disso, faltam alguns passos entre quando você adiciona a chave às chaves autorizadas e quando tenta se conectar, mas parece (de como as coisas são feitas, nenhuma indicação real nos logs) como a chave que você adicionado às chaves autorizadas não é o que você tem na máquina que está tentando se conectar.

    
por 20.04.2017 / 23:46
2

você precisa:

  • verifique se a pasta .ssh do seu destino tem as permissões corretas (geralmente 700) e não algo muito aberto (por exemplo, não 775 ou outro)
    • garanta que seu destino authorized_keys também tenha o perms certo (geralmente 644)
    • assegure-se de que sua chave privada de origem tenha as permissões certas (600, máx.)
    • certifique-se de que os diretórios pessoais de origem e de destino tenham as permissões corretas (não muito abertas, mais uma vez)
    • certifique-se de que a chave em authorized_keys não tenha espaços ou novas linhas (não deve ser o caso do seu gato)
    • verifique se você está usando a chave privada certa ao executar seu ssh / scp / sftp (ele deve usar id_rsa por padrão)

também, qual é o comando ssh que você está usando? de "qual usuário" para "qual usuário"? se você tentar ssh para a conta root de outra máquina, você também precisa garantir que seu arquivo sshd_config tenha PermitRootLogin definido como Yes ou WithoutPassword (não Não)

e lembrete: a chave pública que você gera precisa ser implantada no arquivo authorized_key do usuário alvo. então quando você faz um:

ssh -i /root/.ssh/id_rsa root @ remote_machine

ele funciona sem nenhuma senha (se você não tiver definido uma senha ao usar o ssh-keygen -t rsa , você solicitou, e você tem que pressionar enter duas vezes, não digite nenhum valor)

espero que ajude

também: parece que você criou um usuário chamado webuser, mas você está tentando executar seu ssh do usuário root ... não funcionará. você precisa criar um par de chaves em um usuário específico e implantar o conteúdo da chave pública no outro usuário / máquina que deseja segmentar.

    
por 20.04.2017 / 23:49