ssh-keygen: como gerar chaves SSH, cadastrar a chave pública e usar o ssh-copy-id
O ssh-keygen é o comando do OpenSSH que cria o par de chave privada e chave pública usado nas conexões SSH e que também verifica impressões digitais, troca a frase secreta e limpa o known_hosts. Criei chaves ed25519 e rsa em um servidor AlmaLinux 9, verifiquei as impressões digitais, troquei a frase secreta e o comentário e depois testei o ssh-copy-id em dry-run: a única coisa que vai para o servidor é a linha da chave pública do arquivo .pub.
Os nomes de conta e os caminhos dos arquivos de chave na saída abaixo são valores de exemplo, e as impressões digitais, as chaves públicas e o randomart vêm de chaves criadas para este artigo e apagadas depois. O comando que cadastra de fato a chave pública em um servidor aparece escrito, mas não foi executado.
1️⃣ Gerar chave com ssh-keygen: -t ed25519 e o comentário -C
A chave é criada no formato ssh-keygen -t tipo -C comentário. -t é o tipo de chave, e -C é um comentário que vai no fim da chave pública, onde se escreve um e-mail ou a finalidade da chave. Abaixo está a saída completa com o arquivo definido por -f e Enter pressionado nas duas perguntas da frase secreta.
ssh-keygen -t ed25519 -C "user@example.com" -f ~/.ssh/id_ed25519Generating public/private ed25519 key pair.
Enter passphrase for "/home/user/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com
The key's randomart image is:
+--[ED25519 256]--+
| |
| . |
| o o |
| = o . |
| = Soo . |
| = *+*.. . |
| o.B.o++ . |
| .=o*Eo.+ |
| o+=@OO= |
+----[SHA256]-----+Se você só pressionar Enter na pergunta da frase secreta, a chave fica sem frase secreta. Se omitir -f, antes dessa pergunta aparece uma linha pedindo onde salvar o arquivo. Entre parênteses está o caminho padrão, .ssh/id_ed25519 dentro da sua pasta pessoal, e pressionar só Enter salva a chave ali.
O randomart no fim da saída é a impressão digital transformada em desenho. O mesmo desenho apareceu ao criar a chave e ao conferir de novo com -lv.
ls -l ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub-rw------- 1 user user 411 Oct 29 08:22 /home/user/.ssh/id_ed25519
-rw-r--r-- 1 user user 98 Oct 29 08:22 /home/user/.ssh/id_ed25519.pubA chave privada foi criada com permissão 600 e a pública com 644. A chave privada fica só no seu computador e não vai para lugar nenhum.
cat ~/.ssh/id_ed25519.pubssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@example.comA chave pública é uma única linha com o tipo de chave, o valor da chave e o comentário separados por espaços. É essa linha que entra no authorized_keys do servidor em que você vai se conectar. O papel de cada arquivo da pasta está reunido em uma árvore.
2️⃣ Opções do ssh-keygen: -f, -N, -b, -q
Responder às perguntas é prático quando você digita à mão, mas em um script as perguntas precisam sumir. Definindo o arquivo com -f e a frase secreta com -N, a chave é criada na hora, sem perguntas.
ssh-keygen -t ed25519 -f ~/.ssh/deploy_key -N "" -C "deploy@example.com"Generating public/private ed25519 key pair.
Your identification has been saved in /home/user/.ssh/deploy_key
Your public key has been saved in /home/user/.ssh/deploy_key.pub
The key fingerprint is:
SHA256:Rhk2/tgn59K8jtvDWJTOLiYnToM8t4gkdaMfu6TJ0oM deploy@example.com
The key's randomart image is:
+--[ED25519 256]--+
| + |
| o + |
| + . |
| . + o |
| . o S ++o |
| . + + B+ |
| .oo * + .=+ |
| E+o* Boo=++. |
| .=.=oo=o++. |
+----[SHA256]-----+Com aspas vazias depois de -N, a chave fica sem frase secreta, e o local de gravação e a impressão digital saíram de uma vez, sem nenhuma pergunta.
ssh-keygen -t ed25519 -f ~/.ssh/deploy_key -N ""Generating public/private ed25519 key pair.
/home/user/.ssh/deploy_key already exists.
Overwrite (y/n)?Ao rodar de novo com o mesmo nome, depois de already exists ele pergunta se deve sobrescrever. Digitando n, nada mudou e o comando terminou com código de saída 1. Para não sobrescrever por engano uma chave em uso, crie as chaves novas com outro nome.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N "" -C "user@example.com"Generating public/private rsa key pair.
Your identification has been saved in /home/user/.ssh/id_rsa
Your public key has been saved in /home/user/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:f+uwCSQjMka1BEHzXADwIWbrlbVRiP6Z4tjnwNwPVAA user@example.com
The key's randomart image is:
+---[RSA 4096]----+
|o=BE*=+. |
|oo.Oo++ |
| .+o+. . |
|.... . |
| .+ o.= S |
| .o+o= + . |
| ++.o . o . |
| . o..o . = . |
| o. . o.o |
+----[SHA256]-----+No rsa, -b define o tamanho. Segundo o manual, o padrão é 3072 bits; acima, a chave foi criada com 4096 bits e RSA 4096 apareceu no cabeçalho do randomart. O manual informa que o ed25519 tem tamanho fixo e que -b é ignorado nele.
ssh-keygen -f ~/.ssh/default_key -N "" -C "user@example.com"Generating public/private ed25519 key pair.
Your identification has been saved in /home/user/.ssh/default_key
Your public key has been saved in /home/user/.ssh/default_key.pub
The key fingerprint is:
SHA256:mwy02fpKxjxEVvLC2EUJeaMIiNFOVS0GwWVjN9v0j4c user@example.com
The key's randomart image is:
+--[ED25519 256]--+
|o+ o+=O=*.. |
|o + .*+B== . |
| o ..oB+o.. . |
| . .+.= + |
| = S E o |
| + + o . |
| B + |
| o o |
| ... |
+----[SHA256]-----+Sem -t, foi criada uma chave ed25519.
ssh-keygen -q -t ed25519 -f ~/.ssh/backup_key -N "" -C "backup@example.com"; echo rc=$?rc=0Com -q, tudo fica oculto, inclusive a impressão digital e o randomart, e só sobra o código de saída. Serve para criar por script chaves para vários servidores.
📌 Principais opções: resultados deste artigo
| Opção | Tarefa | Resultado neste artigo | |
|---|---|---|---|
| -t tipo | Tipo de chave a criar | A primeira linha da saída mostra o tipo, como ed25519 ou rsa; sem a opção, ed25519 | |
| -C comentário | Comentário que vai no fim da chave pública | user@example.com no fim da chave pública vista com cat | |
| -f arquivo | Caminho do arquivo de chave | Uma linha dizendo que foi salvo em /home/user/.ssh/deploy_key; rodando de novo com o mesmo nome, already exists e Overwrite (y/n)? | |
| -N frase | Nova frase secreta (passphrase); aspas vazias significam sem frase secreta | Local de gravação e impressão digital de uma vez, sem pergunta de frase secreta | |
| -b bits | Tamanho da chave | Com 4096 no rsa, RSA 4096 no cabeçalho do randomart | |
| -q | Oculta toda a saída | Só sobra a linha rc=0 impressa com echo | |
| -l | Mostra a impressão digital de um arquivo de chave | A mesma impressão digital SHA256 na chave pública e na privada; no authorized_keys, uma linha por chave | |
| -E hash | Define o tipo de hash da impressão digital | Com -E md5, uma impressão digital que começa com MD5:00:7b:02:5e | |
| -v | Junto com -l, mostra também o randomart | O mesmo randomart de quando a chave foi criada | |
| -y | Extrai e mostra a chave pública a partir da chave privada | Uma linha de chave pública idêntica, letra por letra, ao arquivo .pub | |
| -p | Troca a frase secreta da chave privada | Aparece uma linha dizendo que foi salvo com a nova frase secreta, e a chave privada passa de 411 para 464 bytes | |
| -P frase | Frase secreta antiga (a que está definida) | Com a frase certa, a chave pública; com uma errada, incorrect passphrase supplied to decrypt private key | |
| -c | Troca o comentário; o novo vai com -C | Old comment: user@example.com e Comment 'user@laptop' applied | |
| -F host | Procura a linha desse host no known_hosts | # Host 192.0.2.10 found: line 1 e a própria linha | |
| -R host | Apaga a linha desse host do known_hosts | known_hosts updated e o arquivo original known_hosts.old; um host inexistente dá not found | |
| -H | Transforma em hash os nomes de host e endereços do known_hosts | As linhas passam a começar com |1|, e um WARNING avisa que o arquivo .old guarda as linhas sem hash |
📎 Outras opções: segundo o manual oficial
| Opção | Tarefa | |
|---|---|---|
| -a rodadas | Rodadas de KDF (bcrypt_pbkdf) ao salvar a chave privada; quanto mais rodadas, mais lenta a verificação da frase secreta e mais resistente à força bruta; padrão 16 | |
| -A | Cria as chaves de host que faltam para cada tipo padrão (rsa, ecdsa, ed25519) nos caminhos padrão | |
| -B | Mostra o resumo bubblebabble de um arquivo de chave | |
| -e | Converte uma chave OpenSSH para o formato -m (padrão RFC4716) e a mostra, para outros programas SSH | |
| -i | Converte uma chave sem frase secreta no formato -m (padrão RFC4716) para o formato OpenSSH e a mostra | |
| -m formato | Define o formato da chave (RFC4716, PKCS8, PEM); com -p, converte chaves privadas entre os formatos OpenSSH e PEM | |
| -r host | Mostra, a partir da chave pública, o registro DNS SSHFP desse nome de host | |
| -s chave_CA | Assina uma chave pública com uma chave de CA para criar um certificado | |
| -L | Mostra o conteúdo de um certificado | |
| -K | Baixa para a pasta atual as chaves resident guardadas em um autenticador FIDO | |
| -Y sign | Assina um arquivo com uma chave SSH; a assinatura é salva com .sig no fim do nome do arquivo, e o nome de uso vai com -n |
3️⃣ ssh-keygen -l para ver a impressão digital e -y para extrair a chave pública
Com vários arquivos de chave, só pelo nome é difícil saber qual chave pública faz par com qual chave privada. Como a impressão digital é a mesma na chave privada e na pública, comparar com -l as impressões digitais dos dois arquivos confirma o par.
ssh-keygen -l -f ~/.ssh/id_ed25519.pub256 SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com (ED25519)ssh-keygen -l -f ~/.ssh/id_ed25519256 SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com (ED25519)O arquivo de chave pública e o de chave privada deram a mesma impressão digital SHA256. O 256 do início é o tamanho da chave, e os parênteses do fim indicam o tipo de chave.
ssh-keygen -l -E md5 -f ~/.ssh/id_ed25519.pub256 MD5:00:7b:02:5e:b8:ba:85:0c:32:d7:15:7e:72:45:f7:bc user@example.com (ED25519)Com -E md5, a saída passa para a impressão digital MD5, o formato antigo. Serve para comparar quando um servidor antigo ou um painel de administração mostra impressões digitais MD5.
ssh-keygen -lv -f ~/.ssh/id_ed25519.pub256 SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com (ED25519)
+--[ED25519 256]--+
| |
| . |
| o o |
| = o . |
| = Soo . |
| = *+*.. . |
| o.B.o++ . |
| .=o*Eo.+ |
| o+=@OO= |
+----[SHA256]-----+Com -v junto, o randomart aparece de novo. Era o mesmo desenho mostrado quando a chave foi criada.
ssh-keygen -l -f ~/.ssh/authorized_keys256 SHA256:Rhk2/tgn59K8jtvDWJTOLiYnToM8t4gkdaMfu6TJ0oM deploy@example.com (ED25519)Se você passar um arquivo com várias linhas de chave pública, como o authorized_keys, sai uma linha de impressão digital por chave. É assim que se confere quais chaves estão cadastradas em um servidor.
ssh-keygen -y -f ~/.ssh/id_ed25519ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@example.comO -y extrai de novo a chave pública a partir da chave privada. Se você apagou o arquivo .pub ou levou só a chave privada para outro computador, basta salvar essa saída em um arquivo. A saída foi idêntica, letra por letra, ao arquivo .pub original.
4️⃣ ssh-keygen -p para trocar a frase secreta e -c para trocar o comentário
Com uma frase secreta (passphrase) na chave privada, o arquivo não pode ser usado sem ela, mesmo que vaze. Em troca, é preciso digitá-la a cada conexão, então ela combina com chaves que pessoas usam à mão, e não com chaves de scripts que rodam sozinhos, como os do cron.
ssh-keygen -p -f ~/.ssh/id_ed25519 -P "" -N "example-pass"Key has comment 'user@example.com'
Your identification has been saved with the new passphrase.-P é a frase secreta antiga e -N a nova. A chave não tinha frase secreta, então -P recebeu aspas vazias, e apareceram duas linhas dizendo que foi salva de novo com a nova frase secreta. O manual informa que, com -p sozinho e sem opções, ele pergunta a frase antiga e a nova em sequência.
ls -l ~/.ssh/id_ed25519-rw------- 1 user user 464 Oct 29 08:22 /home/user/.ssh/id_ed25519Depois de definir a frase secreta, o arquivo da chave privada cresceu de 411 para 464 bytes.
ssh-keygen -y -f ~/.ssh/id_ed25519 -P "example-pass"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@example.comssh-keygen -y -f ~/.ssh/id_ed25519 -P "wrongpass"Load key "/home/user/.ssh/id_ed25519": incorrect passphrase supplied to decrypt private keyEm uma chave com frase secreta, o -y também precisa da frase passada com -P. Com a frase certa saiu a mesma chave pública de antes, e com uma errada o comando terminou com o erro incorrect passphrase. O manual deixa claro que não há como recuperar uma frase secreta perdida; se você esquecer, crie uma chave nova e cadastre a chave pública de novo.
ssh-keygen -c -C "user@laptop" -f ~/.ssh/id_ed25519 -P "example-pass"Old comment: user@example.com
Comment 'user@laptop' appliedcat ~/.ssh/id_ed25519.pubssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@laptopO -c troca o comentário. O comentário antigo e o novo aparecem em uma linha cada, e o comentário no fim do arquivo de chave pública também virou user@laptop. O comentário é só uma marca para distinguir as chaves, então o valor da chave em si ficou igual.
ssh-keygen -p -f ~/.ssh/id_ed25519 -P "example-pass" -N ""Key has comment 'user@laptop'
Your identification has been saved with the new passphrase.Para tirar a frase secreta, passe aspas vazias para -N. As mesmas duas linhas aparecem e, depois disso, o -y voltou a rodar sem -P.
5️⃣ ssh-keygen -R para apagar chaves de host do known_hosts
No known_hosts se acumulam, uma por linha, as chaves de host dos servidores em que você se conectou. Se um servidor for reinstalado e a chave de host mudar, o ssh recusa a conexão porque ela não bate com a chave guardada, e a opção que apaga a linha antiga é -R. O known_hosts abaixo é um arquivo de três linhas com endereços de exemplo, indicado com -f.
cat ~/.ssh/known_hosts192.0.2.10 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjk
server2.example.com,192.0.2.20 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyR
[192.0.2.30]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC0WmcBD2HIsiSn+tERrbeFIyExAodSEUhE9j5WMpkRWCada linha traz o nome de host ou endereço, o tipo de chave e o valor da chave, nessa ordem. A segunda linha, unida por vírgula, tem o nome e o endereço do mesmo servidor, e os colchetes com dois-pontos da terceira linha indicam uma porta diferente da 22.
ssh-keygen -F 192.0.2.10 -f ~/.ssh/known_hosts# Host 192.0.2.10 found: line 1
192.0.2.10 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjkO -F mostra a linha desse host junto com o número da linha. Para um host inexistente, não mostrou nada e terminou com código de saída 1.
ssh-keygen -R 192.0.2.10 -f ~/.ssh/known_hosts# Host 192.0.2.10 found: line 1
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.oldcat ~/.ssh/known_hostsserver2.example.com,192.0.2.20 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyR
[192.0.2.30]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC0WmcBD2HIsiSn+tERrbeFIyExAodSEUhE9j5WMpkRWO -R apaga a linha desse host e mantém o arquivo original como known_hosts.old. Depois de apagar, sobraram só duas linhas.
ssh-keygen -R 192.0.2.99 -f ~/.ssh/known_hostsHost 192.0.2.99 not found in /home/user/.ssh/known_hostsssh-keygen -R "[192.0.2.30]:2222" -f ~/.ssh/known_hosts# Host [192.0.2.30]:2222 found: line 2
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.oldAo indicar um host inexistente, saiu só uma linha not found. Para um servidor com outra porta, é preciso incluir os colchetes e a porta exatamente como aparecem no known_hosts.
ssh-keygen -H -f ~/.ssh/known_hostsWARNING: /home/user/.ssh/known_hosts.old contains unhashed entries
Delete this file to ensure privacy of hostnames
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.oldcat ~/.ssh/known_hosts|1|JL/knNlx/BnCoOWp5rNeRo3r1rE=|OCPyeFd1rgG8P2QGzrju/V2Y8c4= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyR
|1|AG9QJQvGaQmVsEusSdND1lM9cKI=|Ue0a9suJIzN0yxoJgV7ClLBgSYw= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyRO -H transforma em hash os nomes de host e endereços. É a opção que evita que um arquivo vazado revele em quais servidores você se conectou, e o nome e o endereço que estavam unidos por vírgula foram separados em duas linhas com hash. Também apareceu um aviso de que o arquivo .old guarda o conteúdo sem hash.
ssh-keygen -F server2.example.com -f ~/.ssh/known_hosts# Host server2.example.com found: line 1
|1|JL/knNlx/BnCoOWp5rNeRo3r1rE=|OCPyeFd1rgG8P2QGzrju/V2Y8c4= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyRMesmo no arquivo com hash, o -F encontrou a linha pelo nome.
6️⃣ ssh-copy-id para cadastrar a chave pública e authorized_keys
Criar a chave não basta: enquanto o servidor não conhecer a chave pública, a conexão continua sendo feita com senha. O lugar que apresenta a chave pública ao servidor é o ~/.ssh/authorized_keys da conta em que você se conecta, e o ssh-copy-id é o comando que coloca a linha do .pub nesse arquivo. A chave privada fica no seu computador e só a linha da chave pública atravessa. Clique nos botões de etapa do diagrama abaixo para ver onde ficam os dois arquivos.
ssh-copy-id -n -i ~/.ssh/deploy_key.pub -o ConnectTimeout=3 user@192.0.2.10/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/deploy_key.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: ERROR: ssh: connect to host 192.0.2.10 port 22: Connection timed outO -n é um dry-run, então nada é gravado no servidor. Mesmo assim, o ssh-copy-id primeiro tenta entrar com aquela chave para filtrar as já cadastradas, e como 192.0.2.10 é um endereço para documentação, a conexão não aconteceu e terminou com timed out. As opções depois de -o vão direto para o ssh.
ssh-copy-id -n -f -i ~/.ssh/deploy_key.pub -o ConnectTimeout=3 user@192.0.2.10/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/deploy_key.pub"
=-=-=-=-=-=-=-=
Would have added the following key(s):
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjk deploy@example.com
=-=-=-=-=-=-=-=O -f é o modo forçado que pula essa verificação. Junto com -n, a linha de chave pública que iria para o servidor apareceu abaixo de Would have added. É a mesma linha do conteúdo do arquivo .pub.
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@192.0.2.10O cadastro de verdade é feito com este comando sem -n. Segundo o script do ssh-copy-id e o manual, ele pede uma vez a senha da conta, acrescenta a chave pública ao fim do ~/.ssh/authorized_keys do servidor e depois mostra Number of key(s) added: 1. Se o arquivo e a pasta não existirem, ele os cria, e se a mesma chave já estiver lá, ele a pula.
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 user@192.0.2.10Se a porta não for a 22, passe-a com -p.
Onde não houver ssh-copy-id, acrescente você mesmo a linha da chave pública ao authorized_keys do servidor. Entre no servidor com sua senha e siga a ordem abaixo. A saída foi conferida acrescentando o arquivo .pub dentro do mesmo servidor; em outro servidor, copie a linha do arquivo .pub e acrescente-a com echo.
mkdir -p ~/.sshchmod 700 ~/.sshSe a pasta .ssh não existir, crie-a e ajuste a permissão para 700.
cat ~/.ssh/deploy_key.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keyscat ~/.ssh/authorized_keysssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjk deploy@example.comls -l ~/.ssh/authorized_keys-rw------- 1 user user 100 Oct 29 08:22 /home/user/.ssh/authorized_keysA linha da chave pública entrou no authorized_keys, com permissão 600. O item StrictModes do manual do sshd_config informa que, na configuração padrão, o sshd verifica primeiro as permissões dos arquivos do usuário e recusa o login se qualquer pessoa puder escrever neles.
ssh -i ~/.ssh/id_ed25519 user@192.0.2.10Com o cadastro pronto, conecte-se com a chave privada. Se a chave tiver um nome padrão como id_ed25519, o ssh a encontra sozinho; se tiver outro nome como deploy_key, indique o arquivo com a opção ssh -i.
🔲 Simulador do comando ssh-keygen
No simulador abaixo, você mesmo pode digitar ssh-keygen para criar chaves, conferir impressões digitais, trocar a frase secreta, limpar o known_hosts e testar o ssh-copy-id. As impressões digitais e as chaves públicas são os mesmos valores de exemplo do artigo, e o ssh-copy-id só simula o cadastro em um servidor virtual.
🔢 FAQ & conteúdo recomendado
Windows · Chave pública
Como gerar uma chave pública no Xshell
Passos para criar uma chave pública com o assistente de geração de chaves do cliente SSH Xshell para Windows e cadastrá-la em um servidor.
SSH · Configuração do servidor
Configuração do SSH: funções e ajustes do arquivo sshd_config
Artigo sobre como configurar no sshd_config do servidor que recebe a conexão itens como a porta, o login de root e a autenticação por chave pública.
Linux · Conceitos
SSH no Linux: definição e configuração básica
O que é o SSH e como ele difere do Telnet, e como ligar o sshd em um servidor e conferir a configuração básica.
ℹ️ Aviso de afiliados
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.