{"id":446,"date":"2022-10-31T12:50:00","date_gmt":"2022-10-31T15:50:00","guid":{"rendered":"https:\/\/blog.wieczorek.com.br\/novo\/?p=446"},"modified":"2022-10-29T14:51:16","modified_gmt":"2022-10-29T17:51:16","slug":"como-gerar-chaves-ssh-para-o-github-trabalhando-com-o-phpstorm","status":"publish","type":"post","link":"https:\/\/blog.wieczorek.com.br\/index.php\/2022\/10\/31\/como-gerar-chaves-ssh-para-o-github-trabalhando-com-o-phpstorm\/","title":{"rendered":"Como Gerar Chaves SSH para o GitHub: Trabalhando com o PhpStorm"},"content":{"rendered":"\n<p>Git e <a rel=\"noreferrer noopener\" href=\"http:\/\/www.github.com\" data-type=\"URL\" data-id=\"http:\/\/www.github.com\" target=\"_blank\">GitHub<\/a>\u00a0s\u00e3o ferramentas essenciais para todo desenvolvedor. Eles s\u00e3o amplamente utilizados em quase todos os tipos de projetos de desenvolvimento de software. <\/p>\n\n\n\n<p>Desde 13 de agosto de 2021, o Github n\u00e3o aceita mais autentica\u00e7\u00e3o de senha para acesso \u00e0 linha de comando. Isto significa que agora voc\u00ea precisa autenticar atrav\u00e9s de um token de acesso pessoal ou usar uma chave SSH (um pouco mais conveniente).<\/p>\n\n\n\n<p>Aqui est\u00e1 o que acontece quando voc\u00ea tenta autenticar com sua senha do GitHub sobre HTTP em um terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Username for 'https:\/\/github.com': yourusername\r\n\r\nPassword for 'https:\/\/yourusername@github.com':\r\n\r\nremote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.\r\n\r\nremote: Please see https:\/\/github.blog\/2020-12-15-token-authentication-requirements-for-git-operations\/ for more information.\r\n\r\nfatal: Authentication failed for 'https:\/\/github.com\/yourusername\/repository.git\/'<\/code><\/pre>\n\n\n\n<p>Basicamente, nas linhas acima, o GitHub est\u00e1 lhe informando que precisa da sua chave p\u00fablica para autorizar voc\u00ea a editar qualquer um dos seus reposit\u00f3rios via SSH.<\/p>\n\n\n\n<p>Ent\u00e3o, vamos ver como voc\u00ea pode gerar chaves SSH localmente. No meu caso, eu estou usando um Ubuntu em WSL e como IDE de desenvolvimento, utilizo neste caso, o PphStorm, ent\u00e3o tudo que eu fiz, foi executado dentro do pr\u00f3prio terminal do PhpStotm, rodando em um projeto no Ubuntu via WSL.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"278\" src=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-1024x278.png\" alt=\"\" class=\"wp-image-470\" srcset=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-1024x278.png 1024w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-300x82.png 300w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-768x209.png 768w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image.png 1229w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>Para gerar o seu par de chaves (sim, \u00e9 um par, uma p\u00fablica e outra privada) execute o seguinte comando para gerar um par de chaves SSH local:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh-keygen -t ed25519 -C \"seuemail@provedor.com\"<\/code><\/pre>\n\n\n\n<p>\u00c9 importante entender cada comando que introduzimos em nossos terminais, ent\u00e3o vamos ver o que cada parte deste significa.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a rel=\"noreferrer noopener\" href=\"https:\/\/linux.die.net\/man\/1\/ssh-keygen\" target=\"_blank\">ssh-keygen<\/a>: A ferramenta de linha de comando usada para criar um novo par de chaves SSH. Voc\u00ea pode ver seus todos as suas flags com\u00a0<code>ssh-keygen help<\/code><\/li><li>\u2013<strong>t ed25519:<\/strong>\u00a0A flag\u00a0<code>-t<\/code>\u00a0\u00e9 usada para indicar o algoritmo usado para criar a assinatura digital do par de chaves. Se o seu sistema suporta isso,\u00a0<code>ed25519<\/code>\u00a0\u00e9 o melhor algoritmo que voc\u00ea pode usar para criar pares de chaves SSH.<\/li><li><strong>-C \u201cemail\u201d:<\/strong>\u00a0A flag <code>-c<\/code>\u00a0\u00e9 usada para fornecer um coment\u00e1rio personalizado no final da chave p\u00fablica, que normalmente \u00e9 o e-mail ou a identifica\u00e7\u00e3o do criador do par de chaves.<\/li><\/ul>\n\n\n\n<p>Depois de digitar o comando em seu terminal, voc\u00ea ter\u00e1 que digitar o arquivo para o qual voc\u00ea gostaria de salvar as chaves. Por padr\u00e3o, ele est\u00e1 localizado em seu diret\u00f3rio pessoal (no caso do Linux em \/home\/user), em uma pasta oculta chamada \u201c.ssh\u201d, mas voc\u00ea pode mud\u00e1-lo para o que quiser.<\/p>\n\n\n\n<p>Ser\u00e1 solicitado acrescentar uma senha para o seu par de chaves. Isto adiciona uma camada extra de seguran\u00e7a se, a qualquer momento, o seu dispositivo for comprometido. N\u00e3o \u00e9 obrigat\u00f3rio adicionar uma senha, mas sempre \u00e9 recomendado.<\/p>\n\n\n\n<p>Abaixo a imagem com o comando sendo executado e o seu retorno:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"981\" height=\"423\" src=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-1.png\" alt=\"\" class=\"wp-image-473\" srcset=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-1.png 981w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-1-300x129.png 300w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-1-768x331.png 768w\" sizes=\"auto, (max-width: 981px) 100vw, 981px\" \/><figcaption><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-accent-color\">Como voc\u00ea pode ver, este comando gera dois arquivos no diret\u00f3rio que voc\u00ea selecionou (geralmente\u00a0<strong>~\/.ssh<\/strong>): a chave p\u00fablica com a extens\u00e3o\u00a0<code>.pub<\/code>, e a privada sem extens\u00e3o. Neste caso o nome do par de chaves \u00e9 teste_blog.<\/mark><\/figcaption><\/figure>\n<\/div>\n\n\n<h5 class=\"wp-block-heading\">Adicione a chave SSH ao ssh-agent<\/h5>\n\n\n\n<p>O programa&nbsp;<strong>ssh-agent<\/strong>&nbsp;\u00e9 executado em segundo plano, segura suas chaves e senhas privadas com seguran\u00e7a e as mant\u00e9m prontas para uso pelo ssh. \u00c9 um grande utilit\u00e1rio que salva voc\u00ea de digitar sua senha toda vez que voc\u00ea quiser se conectar a um servidor.<\/p>\n\n\n\n<p>Por causa disso, voc\u00ea vai adicionar sua nova chave privada a este agente atrav\u00e9s dos comandos:<\/p>\n\n\n\n<p>1- Certifique-se de que o ssh-agent est\u00e1 rodando em segundo plano:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>eval `ssh-agent`\r\n# Agent pid 334065<\/code><\/pre>\n\n\n\n<p>Se voc\u00ea receber uma mensagem semelhante a esta, ent\u00e3o tudo est\u00e1 bem. Isso significa que o ssh-agent est\u00e1 rodando sob uma identifica\u00e7\u00e3o de processo particular (PID). NO meu caso, o comando apresentou um problema, talvez devido a eu estar utilizando o WSL, ent\u00e3o eu tive que rod\u00e1-lo atrav\u00e9s do seguinte comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>eval $(ssh-agent)<\/code><\/pre>\n\n\n\n<p>2- Ap\u00f3s o retorno do PID do ssh-agent, adicione sua chave privada SSH (aquela sem a extens\u00e3o .pub) ao ssh-agent (lembre-se que eu estou em \/home\/user).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh-add teste_blog<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Adicionar chave SSH \u00e0 conta GitHub<a href=\"https:\/\/kinsta.com\/pt\/blog\/gerar-chaves-ssh\/#adicionar-chave-ssh--conta-github\"><\/a><\/h5>\n\n\n\n<p>O passo final \u00e9 adicionar sua chave p\u00fablica \u00e0 sua conta GitHub. Basta seguir estas instru\u00e7\u00f5es:<\/p>\n\n\n\n<p>1- Copie sua chave SSH p\u00fablica para a sua \u00e1rea de transfer\u00eancia. Voc\u00ea pode abrir o arquivo onde ele est\u00e1 localizado com um editor de texto e copi\u00e1-lo, ou usar o terminal para mostrar seu conte\u00fado (lembre-se que eu estou em \/home\/user).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat teste_blog.pub\r\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFjheOytEPtI2Hv0eoyoIUcaAgdGfD+hF2E0kX20OT9u seuemail@provedor.com<\/code><\/pre>\n\n\n\n<p>2- <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/login\" target=\"_blank\">Entre no GitHub<\/a>\u00a0e v\u00e1 para a se\u00e7\u00e3o superior direita da p\u00e1gina, clique na foto do seu perfil e selecione\u00a0<strong><strong>Configura\u00e7\u00f5es.<\/strong><\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"226\" height=\"570\" src=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-8.png\" alt=\"\" class=\"wp-image-484\" srcset=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-8.png 226w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-8-119x300.png 119w\" sizes=\"auto, (max-width: 226px) 100vw, 226px\" \/><\/figure>\n<\/div>\n\n\n<p>3- Ent\u00e3o, nas configura\u00e7\u00f5es de ser perfil, clique em<strong> SSH and GPG Keys<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"332\" height=\"511\" src=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-3.png\" alt=\"\" class=\"wp-image-477\" srcset=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-3.png 332w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-3-195x300.png 195w\" sizes=\"auto, (max-width: 332px) 100vw, 332px\" \/><\/figure>\n<\/div>\n\n\n<p>4- Clique no bot\u00e3o\u00a0<strong>New SSH key<\/strong>.<a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/01\/GitHub-new-ssh-key.png\"><\/a><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"813\" height=\"117\" src=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-4.png\" alt=\"\" class=\"wp-image-478\" srcset=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-4.png 813w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-4-300x43.png 300w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-4-768x111.png 768w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><figcaption>5- D\u00ea um\u00a0<strong>t\u00edtulo<\/strong>\u00a0\u00e0 sua nova chave SSH no GitHub &#8211; geralmente damos o nome do dispositivo ao qual voc\u00ea usar\u00e1 essa chave. E ent\u00e3o cole a chave na \u00e1rea\u00a0<strong>Key<\/strong>.<br><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/01\/title-key-field.png\"><\/a><\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"488\" src=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-6.png\" alt=\"\" class=\"wp-image-480\" srcset=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-6.png 786w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-6-300x186.png 300w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-6-768x477.png 768w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n<\/div>\n\n\n<p>6- Adicione sua chave SSH clicando em Add SSH key.<a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/01\/add-ssh-key-button.png\"><\/a><\/p>\n\n\n\n<p>Pronto! Agora voc\u00ea j\u00e1 poder\u00e1 fazer o push no seu reposit\u00f3rio. Lembrando que ao inv\u00e9s de voc\u00ea pegar\/configurar o link HTTP na sua IDE, voc\u00ea usar\u00e1 o link SSH:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git@github.com:user\/repositorio.git<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Teste de conex\u00e3o SSH ao GitHub<a href=\"https:\/\/kinsta.com\/pt\/blog\/gerar-chaves-ssh\/#teste-de-conexo-ssh-com-um-repo-push\"><\/a><\/h5>\n\n\n\n<p>\u00c9 hora de testar tudo o que voc\u00ea j\u00e1 fez at\u00e9 agora. Primeiro, precisaremos clonar o reposit\u00f3rio em nossa m\u00e1quina local. Podemos ir para a p\u00e1gina de reposit\u00f3rios do GitHub e copiar o endere\u00e7o SSH que ele fornece.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"126\" src=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-7-1024x126.png\" alt=\"\" class=\"wp-image-481\" srcset=\"https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-7-1024x126.png 1024w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-7-300x37.png 300w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-7-768x95.png 768w, https:\/\/blog.wieczorek.com.br\/novo\/wp-content\/uploads\/2022\/10\/image-7.png 1239w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>Ent\u00e3o, clone o reposit\u00f3rio usando um terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone git@github.com:EMWieczorek\/publico.git\r<\/code><\/pre>\n\n\n\n<p>Agora, vamos criar um arquivo de teste.txt e depois de fazer isto, fazer um commit com o arquivo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git commit -am \"Adicionando um arquivo de texto\"<\/code><\/pre>\n\n\n\n<p>Ap\u00f3s o commit, fa\u00e7a o push para dentro do GitHub como voc\u00ea normalmente faria.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git push -u origin main<\/code><\/pre>\n\n\n\n<p>Se tudo correu bem, <strong>parab\u00e9ns!<\/strong> Voc\u00ea acabou de estabelecer uma conex\u00e3o SSH entre a sua m\u00e1quina e o GitHub. Caso o git retorne algum erro, verifique suas configura\u00e7\u00f5es, se est\u00e3o de acordo com o que mostramos acima.<\/p>\n\n\n\n<p>Por hoje \u00e9 isso. Qualquer d\u00favida que voc\u00ea venha a ter, deixa um coment\u00e1rio que eu te ajudo a resolver.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Git e GitHub\u00a0s\u00e3o ferramentas essenciais para todo desenvolvedor. Eles s\u00e3o amplamente utilizados em quase todos os tipos de projetos de desenvolvimento de software. Desde 13 de agosto de 2021, o Github n\u00e3o aceita mais autentica\u00e7\u00e3o de senha para acesso \u00e0 linha de comando. Isto significa que agora voc\u00ea precisa autenticar [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":466,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[371,20,330,23,362,28,84,68,98,69,4,30,318],"tags":[367,366,365,369,363,364,370,91,173,368],"class_list":["post-446","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-criptografia","category-desenvolvimento","category-gerenciamento-de-ti","category-gestao-de-projetos","category-github","category-internet","category-linux","category-php","category-seguranca-de-ti","category-software-livre","category-tecnologia","category-windows","category-wsl","tag-chave-privada","tag-chave-publica","tag-conexao","tag-criptografia","tag-git","tag-github","tag-keygen","tag-phpstorm","tag-ssh","tag-ssh-agent"],"_links":{"self":[{"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/posts\/446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=446"}],"version-history":[{"count":14,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/posts\/446\/revisions"}],"predecessor-version":[{"id":488,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/posts\/446\/revisions\/488"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/media\/466"}],"wp:attachment":[{"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}