Não é possível conectar-se ao SSH após gerar chave pública e chave privada

4

Alguém pode ajudar? Instalei o openssh (versão OpenSSH_6.8p1) no windows 7 e gerei as chaves pública e privada, no entanto não consigo me conectar a esse SSH. Estou recebendo um erro "Conexão fechada por 127.0.0.1" se eu usar o comando "ssh localhost".

No entanto, sou capaz de se conectar ignorando a autenticação de chave pública por meio de "ssh localhost -o PubkeyAuthentication = no"

Saída do comando "ssh -v localhost"

OpenSSH_6.8p1, OpenSSL 1.0.2a 19 Mar 2015
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: Connection established.
debug1: identity file /home/Vinoth/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Vinoth/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Vinoth/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Vinoth/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Vinoth/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Vinoth/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Vinoth/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Vinoth/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.8
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.8
debug1: match: OpenSSH_6.8 pat OpenSSH* compat 0x04000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:4Lnpmdki8UuIiQtJyZoc2vxu8x9l PVSN4vykW+axilc
debug1: Host 'localhost' is known and matches the ECDSA host key.
debug1: Found key in /home/Vinoth/.ssh/known_hosts:1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS

debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interacti ve
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/Vinoth/.ssh/id_rsa
Connection closed by 127.0.0.1

Lista de arquivos na pasta .ssh

$ ls -lrt total 7 -rwxrwx--- 1 Vinoth None 519 Jun 11 18:36 known_hosts
-rw-rw---- 1 Vinoth None 1679 Jun 12 00:48 id_rsa
-rw-rw---- 1 Vinoth None 398 Jun 12 00:48 id_rsa.pub
-rw-rw---- 1 Vinoth None 398 Jun 12 23:47 authorized_keys

Lista de arquivos em / var / log

$ ls -lrt
total 54101
-rw-r--r-- 1 Vinoth Administrators 35167 Jun 11 15:10 setup.log
-rw-r--r-- 1 Vinoth Administrators 25541 Jun 11 15:10 setup.log.full
-rw----r-- 1 SYSTEM SYSTEM 469 Jun 11 15:43 sshd.log
-rw-r--r-- 1 sshd Administrators 55330520 Jun 13 00:57 lastlog

sshd.log não está atualizando. arquivo lastlog não é legível

cat sshd.log

Vinoth@Vinoth-HP /var/log $ cat /var/log/sshd.log /var/empty must be owned by root and not group or world-writable.

    
por Vinoth 12.06.2015 / 17:27

2 respostas

1

A explicação mais provável é que você não definiu permissões de arquivo adequadamente restritivas nas chaves em questão. Você pode querer definir

  chmod 600 id_rsa
  chmod 600 id_rsa.pub
  cat id_rsa.pub >> authorized_keys
  chmod 600 authorized_keys

que é estrito o suficiente.

    
por 12.06.2015 / 17:45
0

você escreve

I'm able to connect by skipping the public key authentication via "ssh localhost -o PubkeyAuthentication=no"

Bom

Então $ssh-copy-id localhost

(então isso deve colocar a chave do pub da fonte, no sistema remoto ~ / .ssh / authorized_keys)

sair

então

ssh localhost

e ele deve ir direto porque ele vai tentar a chave do pub primeiro e deve funcionar.

adicionado

ls -l /var/log/sshd.log

veja quando foi escrito pela última vez, então cat /var/log/sshd.log

ou acho tail /var/log/sshd.log para ver a última / mais recente entrada lá

Adicionado-b

cat /var/log/sshd.log deu "/ var / empty deve ser de propriedade de root e não de grupo ou world-writable".

Tente

$ chown root / var / empty
chown: usuário inválido: 'root'

Você pode obter esse erro acima. Isso pode ser uma esquisitice do cygwin / cygwin openssh.

Então, tente

(talvez cygwin seja um absurdo)

como mencionado aqui, link

tente $chown SYSTEM /var/empty

E se o sitll não funcionar, então o cat sshd.log novamente poderá receber um novo erro, o que seria um progresso.

adicionado c

você pode tentar começar de novo ] você pode tentar re-executar o ssh-host-config embora eu tenha descoberto que precisava remover o serviço sshd (e não apenas pará-lo), e excluir chaves em / etc para que o ssh-host-config realmente configurasse as coisas fresco.

sc stop sshd (ou net stop sshd ou cygrunsrv -E sshd)

sc delete sshd (ou cygrunsrv -R sshd)

rm /etc/ssh* (todos estes arquivos)

isso pode ser suficiente, mas você também pode fazer

net user sshd /delete

net user cyg_server /delete

remova qualquer usuário sshd ou cyg_server de / etc / passwd

E eu já vi isso sugerido para remover / var / empty (embora eu não fiz e minha reinstalação estava bem) link

Você poderia reinstalar o cygwin (sem desinstalar) apenas atualiza as coisas, por exemplo Quando eu fiz isso, notei que um comando tem mais alguns switches. Todas as coisas que você instalou como o openssh ainda devem estar marcadas.

Eu não acho que precise reiniciar

Em seguida, abra um prompt de comando administrativo e execute ssh-host-config ok os padrões e net start sshd

    
por 12.06.2015 / 17:40