O usuário remoto do SSH precisa estar logado?

6

Estou tentando configurar um servidor SSH. Coloquei minha chave pública no arquivo authorized_keys, verifiquei se as permissões estavam corretas, etc.

Quando eu reinicio o servidor (na verdade apenas o Ubuntu 12.04 desktop) e eu ssh para ele sem primeiro fazer o login no servidor, me pedem uma senha. Se, no entanto, eu fizer login no servidor, posso ssh sem ser solicitado por uma senha.

auth.log tem essas linhas quando não estou conectado ao servidor real:

mordor sshd[1605]: debug1: trying public key file /home/buck/.ssh/authorized_keys
mordor sshd[1605]: debug1: Could not open authorized keys '/home/buck/.ssh/authorized_keys': No such file or directory
    
por buck 06.06.2012 / 02:50

1 resposta

7

O problema geralmente surge se o seu diretório pessoal estiver criptografado. A solução usual é colocar suas chaves em um diretório diferente do seu diretório pessoal e apontar seu arquivo sshd_config para ele.

Por exemplo:

  1. Mova seu arquivo authorized_keys no servidor de /home/buck/.ssh/authorized_keys para algo como /etc/ssh/keys/buck/authorized_keys
  2. defina as permissões nessa pasta e no arquivo de chaves: sudo chown -R buck:buck /etc/ssh/keys/buck/ e chmod 700 /etc/ssh/keys/buck/ e chmod 600 /etc/ssh/keys/buck/authorized_keys
  3. Edite /etc/ssh/sshd_config e altere a linha AuthorizedKeysFile %h/.ssh/authorized_keys para AuthorizedKeysFile /etc/ssh/keys/%u/authorized_keys
  4. sudo service ssh restart e você deve conseguir fazer o login sem ter que fazer login no servidor primeiro.
por jeshurun 06.06.2012 / 03:02