Se você gerencia um servidor Linux, sabe como pode ser entediante inserir sua senha toda vez que fizer login via SSH ou copiar arquivos usando scp. Este tutorial apresenta o uso da chave SSH para obter login SSH sem senha e não há necessidade de inserir uma senha ao usar o scp para copiar arquivos. Além de facilitar o login SSH e a cópia de arquivos SCP, o login SSH sem senha também adiciona outra linha de segurança ao servidor Linux.
Etapas de configuração de login sem senha SSH
- Primeiro, geramos um par de chaves SSH em nosso sistema Linux: chave SSH e chave pública SSH. A chave é mantida em seu próprio sistema Linux.
- Em seguida, a chave pública é carregada no servidor Linux. Depois disso podemos fazer login via SSH sem senha. Uma chave SSH é como sua prova de identidade.
1 Gere chaves SSH e chaves públicas em seu próprio sistema Linux
Abra um terminal e use ssh-keygen abaixo para gerar a chave RSA e a chave pública. -t indica o tipo, o que significa gerar uma chave de criptografia RSA.
ssh-keygen -t rsa
RSA também é o tipo de criptografia padrão. Então você também pode simplesmente inserir ssh-keygen. O comprimento RSA padrão é 2.048 bits. Se você estiver muito preocupado com a segurança, poderá especificar um comprimento de 4.096 bits.
ssh-keygen -b 4096 -t rsa
Durante o processo de geração da chave SSH, você será solicitado a especificar um arquivo para salvar a chave. Basta pressionar Enter para usar o arquivo padrão. Então você precisa inserir uma senha para criptografar sua chave SSH. A senha deve ter pelo menos 20 caracteres. A chave SSH será salva no arquivo .ssh/id_rsa no diretório inicial. A chave pública SSH é salva no arquivo .ssh/id_rsa.pub.
Generating public/private rsa key pair. Enter file in which to save the key (/home/matrix/.ssh/id_rsa): 按Enter键 Enter passphrase (empty for no passphrase): 输入一个密码 Enter same passphrase again: 再次输入密码 Your identification has been saved in /home/matrix/.ssh/id_rsa. Your public key has been saved in /home/matrix/.ssh/id_rsa.pub. The key fingerprint is: e1:dc:ab:ae:b6:19:b0:19:74:d5:fe:57:3f:32:b4:d0 matrix@vivid The key's randomart image is: +---[RSA 4096]----+ | .. | | . . | | . . .. . | | . . o o.. E .| | o S ..o ...| | = ..+...| | o . . .o .| | .o . | | .++o | +-----------------+
Se você observar o arquivo .ssh/id_rsa, verá que ele está criptografado. Ou seja, ele está criptografado com a senha que você digitou.
less .ssh/id_rsa
2Carregue a chave pública SSH para o servidor Linux
Isso pode ser feito usando o comando ssh-copy-id.
ssh-copy-id username@remote-server
Após inserir a senha do usuário remoto, a chave pública SSH será carregada automaticamente. A chave pública SSH é armazenada no arquivo .ssh/authorized_keys no servidor Linux remoto.
Após a conclusão do upload, não será necessário inserir a senha novamente para login SSH. No entanto, ao usar a chave SSH para fazer login pela primeira vez, você precisará inserir a senha de criptografia da chave SSH uma vez. (Você só precisa inseri-lo uma vez e fará login automaticamente no futuro. Você não precisa mais inserir a senha da chave.)
Não há necessidade de inserir uma senha ao usar o comando scp para transferir arquivos.
Conhecimento da chave SSH
O sistema Linux possui um programa de gerenciamento de chaveiro. O chaveiro é protegido pela senha de login do usuário. Ao efetuar login no sistema Linux, a senha do chaveiro será desbloqueada automaticamente, permitindo que você acesse o chaveiro. As senhas para chaves SSH também podem ser armazenadas no chaveiro. Portanto, ao usar uma chave SSH para fazer login em um servidor Linux remoto pela primeira vez, você precisará inserir a senha da chave SSH uma vez. No futuro, você não precisará mais inserir uma senha ao fazer login usando uma chave SSH. O programa de chaveiro para Ubuntu é o Seahorse.
Uma chave SSH é como sua prova de identidade. O servidor Linux remoto usa a chave pública SSH gerada para criptografar uma mensagem e somente sua chave SSH pode descriptografar a mensagem. Portanto, se outras pessoas não tiverem sua chave SSH, não conseguirão descriptografar a mensagem criptografada e, portanto, não conseguirão fazer login em seu servidor Linux.
Configurar o login SSH sem senha é simples assim.