Security advices - login de acesso root do ssh

1

Gostaria de ter alguns conselhos sobre o meu caso:

Eu tenho um servidor com um endereço IP público. Eu tenho um usuário root com senha. Eu desliguei (em sshd) PermitRootlogin = Não

Perguntas / dicas / conselhos:

Como posso excluir a senha do root e acessar este servidor com o ssh sem nenhuma senha? Preciso usar apenas o sudo com um usuário para obter acesso root?

Obrigado

    
por Jerry 22.03.2013 / 17:28

3 respostas

1

Vou responder às suas perguntas uma a uma; -).

Como excluir a senha do root

Bevor você faz qualquer coisa assim você precisa de outro usuário, que tem todos os direitos para o sudo! No Ubuntu ou Debian, o usuário tem que estar no grupo admin . Faça o login com esse usuário via ssh e tente obter acesso root com sudo -i . Eu trabalhei você pode continuar com a desativação do login para root com passwd -l root e pronto.

Acesso ao servidor sem senha

É possível acessar o servidor com um ssh-keypair. Isso é fácil e, na maioria dos casos, mais seguro do que uma senha normal. Primeiro você tem que gerar um tal par de chaves no seu PC cliente. Se você estiver usando um Linux / Unix, você pode fazer isso com ssh-keygen -t rsa . Recomenda-se bloquear este par de chaves com uma senha, para que você possa usá-las! A maioria dos ambientes de desktop como Gnome, Unity e Kde são capazes de desbloquear a chave ssh automaticamente depois que você desbloqueou seu chaveiro / carteira.

Agora você precisa implantar sua chave pública (padrão ~ / .ssh / id_rsa.pub ) em seu servidor adicionando-o ao arquivo * ~ / .ssh / authorized_keys * em seu servidor. Você pode fazer este manual ou com o comando ssh-copy-id user@server .

Se um login com sua chave foi bem-sucedido, você pode fazer mais pela sua segurança, desabilitando o login por senha do ssh. Para arquivar, você precisa alterar a seguinte linha no arquivo / etc / ssh / sshd_config PasswordAuthentication yes para PasswordAuthentication no e reiniciar o ssh-server.

Eu só preciso usar o sudo?

Não, mas é recomendável! Mas isso depende da maneira como você usa seu servidor. Se você é o único usuário, que tem acesso ao seu servidor do que não é realmente importante o que você escolhe, mas se houver mais de um usuário, o sudo faz muito mais sentido, porque você não precisa compartilhar sua senha de root para ganhe acesso root ou privilegiado. Se você decidir que aquele usuário não deve mais ter acesso root, você só precisa remover os privilégios de sudo em vez de mudar a senha de root e compartilhá-la novamente com todo mundo. Mas nem tudo pode ser feito muito bem com o sudo.

    
por 22.03.2013 / 18:54
1

Se você quiser fazer login diretamente como root sem senha, não precisará excluir a senha do root. Em vez disso, você pode definir a configuração PermitRootLogin without-password no sshd, reiniciar o sshd, gerar (pelo ssh-keygen ou puttygen.exe) para o cliente, copiar o conteúdo de .ssh/id*.pub (ou exportar do puttygen) para ~root/.ssh/authorized_keys no servidor e usá-lo para acessar seu servidor como root. Você pode gerar chaves de cliente sem senha (menos segura) ou com senha, mas use ssh-agent / pageant.exe e lembre-se de sua senha para logins subseqüentes.

    
por 22.03.2013 / 18:55
0

Ajustar a configuração do sshd é sensível; Há muitas nuances que você deve entender. Mas basicamente. . .

Pegue sua chave pública, você pode precisar gerar um par de chaves no sistema e instalá-lo no diretório .ssh na home do root no servidor. Defina "PermitRootLogin yes" e, em seguida, verifique se, quando você executa ssh no servidor, ele permite entrar sem solicitar sua senha. Em seguida, altere a configuração "PasswordAuthentication" para "no".

Cuidado: PasswordAuthentication = não afetará TODAS as conexões com o sistema, então minha resposta aqui afeta todos. Você pode controlar usuário por usuário, por exemplo, esta questão.

    
por 22.03.2013 / 18:58