Como entrei em outro servidor sem minha chave privada?

3

Acabei de passar por um momento muito assustador, que me obrigou a pensar sobre a segurança da minha chave SSH privada.

Veja o que aconteceu:

  1. Conectado ao meu servidor usando minha chave SSH.
  2. Deu a entrada da minha chave pública em .ssh/authorized_keys ao meu amigo.
  3. Ele colocou isso no seu authorized_keys para uma nova conta que ele fez para eu fazer o login.
  4. Conectado do meu servidor ao servidor usando minha chave SSH.

Agora, o que não faz sentido aqui é como eu consegui usar minha chave SSH para acessar seu servidor do meu servidor . Meu servidor não tem minha chave privada. Como consegui fazer o login? Minha chave privada poderia estar em algum lugar no meu servidor, mesmo que eu nunca tenha colocado lá?

Conteúdo de authorized_keys nos dois servidores:

ssh-rsa AAAAB3NzaC1yc2EAAAAD[more characters]FdQCw== robo@robo-ubuntu

Algumas informações adicionais:

robo@other-server:~$ ssh robo@localhost
robo@localhost's password: 
Login Success. [More default login info]
robo@other-server:~$

Meu servidor é executado em uma porta SSH não padrão.

robo@my-server:~$ ssh -p [port number] robo@localhost
Login Success. [More default login info]
robo@my-server:~$ ls .ssh
authorized_keys  known_hosts
robo@my-server:~$ ssh -p [port number] robo@localhost
robo@localhost's password:
Login Success. [More default login info]
robo@my-server:~$ 

Observe como o SSHing duas vezes para o host local não faz login automaticamente.

Então, aparentemente, minha chave está sendo encaminhada? Aqui está o que minha configuração parece dizer sobre isso:

robo@my-server:~$ cd /etc/ssh/; grep -iR "forward"
sshd_config:X11Forwarding yes
ssh_config:#   ForwardAgent no
ssh_config:#   ForwardX11 no
ssh_config:#   ForwardX11Trusted yes
robo@roboserver:/etc/ssh$

Eu vejo dois "Forward" diferentes que poderiam ser. No entanto, parece sugerir que não está encaminhando a autenticação.

    
por Robobenklein 03.05.2015 / 03:05

1 resposta

1

Seu cliente de desktop usa um agente SSH. Você pode verificar facilmente se a sua conexão tem um agente em execução e, em caso afirmativo, se ele está preenchido com as chaves ssh, digitando o seguinte na linha de comando:

ssh-add -L

Outra possibilidade poderia ser o uso do arquivo de identidade predefinido como definido pelo parâmetro 'IdentityFile' em seu arquivo de configuração ssh global / etc / ssh / ssh_config ou seu arquivo de configuração ssh local ~ / .ssh / config

A maneira de descobrir qual chave está usando é usar uma saída ssh mais detalhada:

ssh -vv user@host
    
por Mick Switser 07.05.2015 / 11:55

Tags