Você pode fazer login em um servidor Linux sem uma senha usando as teclas SSH. Esse método é geralmente mais seguro do que a autenticação de senha. Aqui está um colapso do processo:
1. Gere um par de chaves ssh em sua máquina local (cliente) *Abra um terminal em sua máquina local (onde você estará conectando *de *).
* Use o comando `ssh-keygen`:
`` `BASH
ssh-keygen
`` `
*
Prompts: O comando o levará a:
*
Digite o arquivo no qual salvar a chave (/home/yourusername/.ssh/id_rsa): Pressione Enter para aceitar o local padrão (`~/.ssh/id_rsa` para a chave privada e` ~/.ssh/id_rsa.pub` para a chave pública). Esta é geralmente a melhor opção.
*
Digite a senha (vazia sem senha): Isso é *opcional *. Uma senha adiciona uma camada extra de segurança, exigindo que você a insira sempre que usar a chave.
Se você não quiser inserir uma senha toda vez que se conectar, deixe -a em branco e pressione Enter duas vezes. No entanto, esteja ciente de que, sem uma senha, se sua chave privada estiver comprometida, qualquer pessoa com acesso a ela pode acessar seu servidor. Pese a conveniência contra as implicações de segurança.
*
Digite a mesma senha novamente: Se você optou por entrar em uma senha, confirme.
*
Arquivos de chave: Após a conclusão do processo, você terá dois arquivos no diretório `~/.ssh`:
* `id_rsa`:esta é a sua
chave privada .
Mantenha este arquivo em segredo e seguro! Nunca compartilhe com ninguém! * `id_rsa.pub`:esta é a sua chave pública . Você precisará copiar o conteúdo deste arquivo para o servidor.
2. Copie a chave pública para o servidor Existem várias maneiras de copiar a chave pública para o servidor. O mais simples é frequentemente `ssh-copy-id`, mas requer autenticação de senha *uma última vez *. Se você não pode usar a autenticação de senha, precisará usar um método manual.
*
usando `ssh-copy-id` (mais fácil se você tiver acesso à senha): `` `BASH
usuário ssh-copy-id@server_ip_address
`` `
Substitua `usuário` pelo seu nome de usuário no servidor e` server_ip_address` com o endereço IP ou o nome do host do servidor. Você será solicitado sua senha no servidor. Este comando anexa automaticamente sua chave pública ao arquivo `~/.ssh/autorizado_keys` no servidor.
*
Copiar manual (se você não tiver acesso a senha): 1.
Veja a chave pública em sua máquina local: `` `BASH
cat ~/.ssh/id_rsa.pub
`` `
Copie toda a saída (incluindo o `ssh-rsa` no início e seu nome de usuário e nome de host no final). Parecerá algo como:`ssh-rsa aaaab3nzac1yc2eaaaadaqabaaabaqdf ... yourusername@yourhostname`
2. Faça login no servidor usando um método diferente (por exemplo, através de um console da web ou outro acesso temporário).
3.
Crie o diretório `.ssh` (se não existir) e o arquivo` Authorized_keys`: `` `BASH
mkdir -p ~/.ssh
CHMOD 700 ~/.SSH #IMPORTANT:Defina permissões para restringir o acesso
toque ~/.ssh/autorizado_keys
CHMOD 600 ~/.SSH/Autorizado_Keys #IMPORTANT:Defina permissões para restringir o acesso
`` `
4.
Edite o arquivo `Authorized_Keys` e cole sua chave pública: `` `BASH
nano ~/.ssh/autorizado_keys # ou use vi, vim, emacs, etc.
`` `
Cole a chave pública que você copiou na etapa 1 neste arquivo. Verifique se está tudo em uma linha. Salve e feche o arquivo.
5.
Importante:Verifique se as permissões: As permissões incorretas são uma causa comum de falha de autenticação do SSH. Garanta o seguinte:
* `~/.ssh` diretório:` 700` (DRWX ------)-Somente o usuário pode acessar.
* `~/.ssh/Authorized_keys` Arquivo:` 600` (-rw -------)-Somente o usuário pode ler e gravar.
* Diretório doméstico do usuário:legível e executável pelo usuário (por exemplo, `755` ou` 700`).
3. Teste a conexão * Agora, tente fazer login no servidor sem uma senha:
`` `BASH
usuário ssh@server_ip_address
`` `
* Se você definir uma senha em sua chave privada, você será solicitado. Se você não definiu uma senha, deve estar conectado diretamente.
4. Desative a autenticação de senha (opcional, mas recomendada para segurança) *
IMPORTANTE:Verifique se você pode fazer login com sucesso com as chaves SSH * antes de * desativar a autenticação de senha. Se você se trancar, precisará usar outro método para recuperar o acesso (por exemplo, o console do servidor).
*
Edite o arquivo de configuração do servidor SSH: `` `BASH
sudo nano/etc/ssh/sshd_config # ou use vi, vim, emacs, etc.
`` `
*
Encontre e modifique essas linhas (ou adicione -as se não existir): `` `
PasswordAuthentication no
ChallengerSesponseauthentication Nenhum #também recomendado para desativar
Usepam no
`` `
*
Salve o arquivo e reinicie o serviço SSH: `` `BASH
sudo systemctl reiniciar sshd #ou reinicialização ssh de serviço sudo, dependendo do seu sistema
`` `
Solução de problemas *
As permissões estão incorretas: Este é o problema mais comum. Verifique duas vezes as permissões do diretório `.ssh` e o arquivo` Authorized_keys`.
*
Chave pública incorreta: Certifique -se de copiar a chave pública * inteira * para o arquivo `Authorized_Keys` e que não há espaços extras ou quebras de linha.
*
Configuração do servidor SSH: Revise o arquivo `sshd_config`. Pode haver outras configurações que estão interferindo na autenticação chave (por exemplo, `pubkeyauthentication no`).
*
Selinux/Appmor: Se você estiver usando o Selinux ou o Apparmor, eles podem estar impedindo o SSH de acessar os arquivos de chave. Verifique seus logs e ajuste a configuração conforme necessário.
*
firewall: Verifique se o seu firewall está permitindo o tráfego SSH (normalmente a porta 22, mas pode ser diferente).
*
Configuração do cliente: Verifique o arquivo de configuração SSH do seu cliente (`~/.ssh/config`) para qualquer configuração que possa estar substituindo o comportamento padrão.
considerações de segurança *
Proteja sua chave privada: Sua chave privada é a coisa mais importante. Se estiver comprometido, alguém pode personificá -lo no servidor. Armazene -o com segurança e considere usar uma senha.
*
girar regularmente as teclas: É uma boa prática gerar novas teclas SSH periodicamente e remover as antigas do arquivo `Authorized_Keys`.
*
Use uma senha forte: Se você optar por usar uma senha, torne -a forte e memorável. Um gerenciador de senhas pode ajudar.
*
Limite o acesso SSH: Use regras do firewall e outras medidas de segurança para restringir o acesso SSH a apenas redes confiáveis e endereços IP.
*
Desativar a autenticação de senha: Como mencionado anteriormente, desativar a autenticação de senha melhora significativamente a segurança, eliminando o risco de ataques de força bruta.
Seguindo estas etapas, você pode fazer login de forma segura e conveniente no seu servidor Linux sem uma senha usando as teclas SSH. Lembre -se de priorizar a segurança e proteger sua chave privada.