<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Junio Santos</title>
    <description>The latest articles on DEV Community by Junio Santos (@devjunio).</description>
    <link>https://dev.to/devjunio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F464048%2F61e3f777-cb9f-438f-a885-78a4d9ccbc5f.png</url>
      <title>DEV Community: Junio Santos</title>
      <link>https://dev.to/devjunio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devjunio"/>
    <language>en</language>
    <item>
      <title>Como criar e registrar uma chave SSH para o GitHub</title>
      <dc:creator>Junio Santos</dc:creator>
      <pubDate>Thu, 28 Sep 2023 17:26:40 +0000</pubDate>
      <link>https://dev.to/forja/como-criar-e-registrar-uma-chave-ssh-para-o-github-fah</link>
      <guid>https://dev.to/forja/como-criar-e-registrar-uma-chave-ssh-para-o-github-fah</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Autor: &lt;a href="https://github.com/imnotjuniodev"&gt;Junio Santos&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Índice
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
O que é

&lt;ul&gt;
&lt;li&gt;Pré-requisitos&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Instalando OpenSSH no seu computador&lt;/li&gt;
&lt;li&gt;Criando a chave SSH&lt;/li&gt;
&lt;li&gt;Adicionando no GitHub&lt;/li&gt;
&lt;li&gt;Registrando no dispositivo&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  O que é
&lt;/h2&gt;

&lt;p&gt;OpenSSH é uma ferramenta que auxilia em conexões remotas utilizando o protocolo SSH, servindo como um meio de autenticação prático onde não é necessário senhas e usernames. Aplique esse conceito ao Github (ou GitLab) e voce poderá clonar seus projetos e eles automaticamente autenticar com a sua conta, podendo manter o repositório sincronizado com maior segurança e sem necessidade de senha.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Se voce utiliza o &lt;strong&gt;Github Desktop&lt;/strong&gt; não é necessário configurar alguma chave SSH, mas é bom ter configurado caso em algum momento precise utilizar Git fora da GUI&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Pré-requisitos:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;openSSH&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Instalando OpenSSH no seu computador
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Caso ja openssh instalado em seu pc, pode pular para Criando a Chave &lt;br&gt;
SSH&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
  MacOS
  &lt;h3&gt;
  
  
  MacOS:
&lt;/h3&gt;

&lt;p&gt;MacOS já vem com o git instalando por padrão, e openssh já vem embutido sem a necessidade de fazer qlqer download extra.&lt;br&gt;&lt;br&gt;
Caso queira confirmar que realmente está tudo certo basta executar:&lt;br&gt;
&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;brew &lt;span&gt;install &lt;/span&gt;git
&lt;/code&gt;&lt;/pre&gt;





&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;
  Linux
  &lt;br&gt;
Para conferir se já está disponível no seu computador utilize o comando:&lt;br&gt;

&lt;pre&gt;&lt;code&gt;&lt;span&gt;if &lt;/span&gt;&lt;span&gt;command&lt;/span&gt; &lt;span&gt;-v&lt;/span&gt; /usr/bin/ssh-agent &amp;amp;&amp;gt; /dev/null&lt;span&gt;;&lt;/span&gt; &lt;span&gt;then &lt;/span&gt;&lt;span&gt;echo&lt;/span&gt; &lt;span&gt;"ta tudo certo"&lt;/span&gt;&lt;span&gt;;&lt;/span&gt; &lt;span&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Se de fato apareceu &lt;code&gt;ta tudo certo&lt;/code&gt; no teu terminal significa que ta tudo certo e pode pular essa parte.&lt;br&gt;
&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span&gt;# -- ubuntu/mint/debian&lt;/span&gt;
&lt;span&gt;sudo &lt;/span&gt;apt &lt;span&gt;install &lt;/span&gt;openssh-client

&lt;span&gt;# -- fedora&lt;/span&gt;
&lt;span&gt;sudo &lt;/span&gt;dnf &lt;span&gt;install &lt;/span&gt;openssh

&lt;span&gt;# -- openSUSE&lt;/span&gt;
&lt;span&gt;sudo &lt;/span&gt;zypper &lt;span&gt;install &lt;/span&gt;openssh

&lt;span&gt;# -- arch&lt;/span&gt;
&lt;span&gt;sudo &lt;/span&gt;pacman &lt;span&gt;-S&lt;/span&gt; openssh
&lt;/code&gt;&lt;/pre&gt;





&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;
  Windows
  &lt;br&gt;
Uma das mais maneiras mais fáceis para conseguir gerenciar sua chave SSH no Windows é utilizando o &lt;strong&gt;Git Bash&lt;/strong&gt;

&lt;p&gt;Caso não tenha instalado basta baixar direto do site do Git acessando: &lt;a href="https://git-scm.com/download/win"&gt;https://git-scm.com/download/win&lt;/a&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Clique no primeiro link para baixar&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ve17RFMK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/2rYMvBm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ve17RFMK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/2rYMvBm.png" alt="image" width="800" height="281"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Durante a instalação selecione a opção padrão &lt;em&gt;&lt;strong&gt;Use bundled OpenSSH&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando a chave SSH
&lt;/h2&gt;

&lt;p&gt;Daqui em diante o processo será o mesmo tanto para Linux quanto para Windows&lt;br&gt;&lt;br&gt;
OBS: &lt;strong&gt;Usuários de Windows&lt;/strong&gt; devem prosseguir utilizando &lt;strong&gt;Git Bash&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;Para gerar uma nova chave usaremos o &lt;code&gt;ssh-keygen&lt;/code&gt; e passaremos alguns parametros para reforçar a segurança como:  &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parâmetro&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-f&lt;/td&gt;
&lt;td&gt;Indica onde a chave será armazenada e qual nome ela terá. Gera dois arquivos, um privado e um público (com extensão .pub).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-t&lt;/td&gt;
&lt;td&gt;Escolhe o algoritmo de criptografia a ser usado. O mais seguro atualmente é ed25519. Mais informações sobre outros algoritmos e comparações podem ser encontradas &lt;a href="https://dev.tolink"&gt;aqui&lt;/a&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-b&lt;/td&gt;
&lt;td&gt;Define o tamanho em bits da chave. Quanto maior, mais seguro. Por precaução, utilizaremos o maior disponível.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-E&lt;/td&gt;
&lt;td&gt;Especifica o tipo de hash no qual a chave será armazenada. O mais seguro disponível é sha512, e é isso que usaremos.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-C&lt;/td&gt;
&lt;td&gt;Define o comentário que será o identificador da chave. Neste caso, será o mesmo e-mail usado no GitHub, desde que não seja o e-mail privado. Se o seu e-mail principal for privado, o GitHub gera um e-mail para você. Basta &lt;a href="https://dev.tolink"&gt;clicar aqui&lt;/a&gt; e copiar o e-mail que fica abaixo da opção "Keep my email addresses private" (deve ser algo como: 541234+@users.noreply.github.com).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Com isso esclarecido, basta inserir todo o comando abaixo para prosseguirmos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh-keygen &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-b&lt;/span&gt; 4096    &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-E&lt;/span&gt; sha512  &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-t&lt;/span&gt; ed25519 &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-f&lt;/span&gt; ~/.ssh/gitKey &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-C&lt;/span&gt; &lt;span class="s2"&gt;"seu@email.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;lembre-se, o email não pode ficar entre &lt;code&gt;&amp;lt;&lt;/code&gt; e &lt;code&gt;&amp;gt;&lt;/code&gt;, deve ser identico ao utilizado no GitHub&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ao entrar com o comando irá aparecer uma tela pedindo uma senha. Como essa chave será utilizada apenas para validar o acesso ao github não é necessário, então aperte &lt;code&gt;Enter&lt;/code&gt; para prosseguir.&lt;/p&gt;

&lt;p&gt;Se formos ver a pasta ssh usando &lt;code&gt;ls ~/.ssh/&lt;/code&gt; irá notar que foram gerados dois arquivos: &lt;code&gt;gitKey&lt;/code&gt; e &lt;code&gt;gitKey.pub&lt;/code&gt;&lt;br&gt;&lt;br&gt;
A &lt;code&gt;gitKey&lt;/code&gt; é a que contem os dados sensíveis e &lt;strong&gt;nunca deve ser compartilhada&lt;/strong&gt; em hipotese alguma, pois é somente com ela permanecendo desconhecida que a &lt;code&gt;gitKey.pub&lt;/code&gt; terá alguma validade e deverá gerar outra.&lt;br&gt;
Por outro lado, a &lt;code&gt;gitKey.pub&lt;/code&gt; pode ser mostrada sem problema algum e será ela que iremos mandar para o GitHub para autenticar com o nosso computador.  &lt;/p&gt;

&lt;p&gt;Para ler o arquivo &lt;code&gt;gitKey.pub&lt;/code&gt; basta executar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; ~/.ssh/gitKey.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;esse arquivo terá que começar com: &lt;code&gt;ssh-ed25519&lt;/code&gt; e terminar com o email utilizado no Git.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gP5zcjs5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/vyrDLuj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gP5zcjs5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/vyrDLuj.png" alt="img" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;e apenas copie essa linha pois será necessária para a próxima etapa.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adicionando no GitHub
&lt;/h2&gt;

&lt;p&gt;Após copiar nossa chave pública do SSH, abra a página de chaves no site do Github (&lt;a href="https://github.com/settings/keys"&gt;ou clicando aqui&lt;/a&gt;) e aperte o botão &lt;strong&gt;New SSH Key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C0R0caJi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/BLH6ZHQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C0R0caJi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/BLH6ZHQ.png" alt="img" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E basta dar um nome que seja fácil para voce identificar de qual computador está configurado, em &lt;strong&gt;Key type&lt;/strong&gt; usar &lt;em&gt;Authentication key&lt;/em&gt; e por fim inserir a &lt;em&gt;chave pública&lt;/em&gt; inteira no campo &lt;strong&gt;Key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dJVedM05--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/TrST1xg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dJVedM05--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/TrST1xg.png" alt="img" width="755" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Registrando no dispositivo
&lt;/h2&gt;

&lt;p&gt;Quanto ao GitHub já está tudo certinho, *&lt;em&gt;PORÉMMM...&lt;/em&gt; ainda temos que registrar a nossa chave no nosso próprio computador&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ué, mas nós criamos a chave e até registrei no Github, não é só usar?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Por padrão as chaves geradas não são registradas pois não são em todos os casos que SSH é utilizado apenas localmente, por ser um arquivo ela pode ser exportada para outro sistema e só lá ser adicionada, por conta disso é de nossa responsabilidade fazermos esse registro&lt;br&gt;
Um meio de verificar se a chave SSH está funcionado é mandando uma requisição para o GitHub, vamos testar:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A8SDoOK3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/9aRsxIU.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A8SDoOK3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/9aRsxIU.png" alt="img" width="429" height="24"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vish...  &lt;code&gt;Permission Denied&lt;/code&gt; não é nada bom... &lt;br&gt;
Para resolver isso temos que invocar o &lt;code&gt;ssh-agent&lt;/code&gt; e &lt;code&gt;ssh-add&lt;/code&gt; que vieram junto com a instalação do openssh que fizemos no começo do post.  &lt;/p&gt;

&lt;p&gt;Antes, vamos instanciar o ssh-agent utilizando o comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# bash/zsh:&lt;/span&gt;
&lt;span class="nb"&gt;eval&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;ssh-agent &lt;span class="nt"&gt;-s&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# fish&lt;/span&gt;
&lt;span class="nb"&gt;eval&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;ssh-agent &lt;span class="nt"&gt;-c&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;e voce provavelmente deve ver uma mensagem parecida com &lt;code&gt;Agent pid 16916&lt;/code&gt;&lt;br&gt;
Agora sim, só nos resta registramos nossa &lt;strong&gt;chave privada&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh-add ~/.ssh/githubKey
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;e novamente uma mensagem de confirmação deve ser exibida:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Identity added: /home/ManoelGomes/.ssh/gitKey (&amp;lt;your git email&amp;gt;)

# ou a mensagem abaixo se for um usuário da maçã
Identity added: /Users/ManoelGomes/.ssh/gitKey (&amp;lt;your git email&amp;gt;)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E chegamos ao momento final ~~&lt;br&gt;
Vamos tentar conectar no server do GitHub para ver se nossa máquina está ou não autenticada:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kQwejNHP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/WuDoYpy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kQwejNHP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://imgur.com/WuDoYpy.png" alt="img" width="800" height="94"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora está funcionando!!&lt;br&gt;
Caso continue dando o erro de &lt;em&gt;acesso negado&lt;/em&gt;, repita as etapas de adicionar a chave que funcionará.&lt;/p&gt;




&lt;p&gt;E a partir de agora toda vez que voce for clonar algum repositório, esqueça o modo HTTP e use apenas SSH e nunca mais terá que inserir seu login e senha quando for trabalhar em algum outro projeto &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i3IjXqHr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/QplPuVK.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3IjXqHr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/QplPuVK.png" alt="img" width="530" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E é isso! também não se esqueça de configurar a chave GPG para assinar cada commit que você fez!&lt;br&gt;
E qualquer dúvida é só mandar aqui nos comentarios ;)&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>github</category>
      <category>ssh</category>
      <category>git</category>
    </item>
    <item>
      <title>Como mudar o idioma padrão do LinkedIn</title>
      <dc:creator>Junio Santos</dc:creator>
      <pubDate>Fri, 02 Dec 2022 00:58:46 +0000</pubDate>
      <link>https://dev.to/devjunio/como-mudar-o-idioma-padrao-do-linkedin-n7m</link>
      <guid>https://dev.to/devjunio/como-mudar-o-idioma-padrao-do-linkedin-n7m</guid>
      <description>&lt;h3&gt;
  
  
  Introdução
&lt;/h3&gt;

&lt;p&gt;O LinkedIn é um aplicativo bem completo, porém ainda falta algumas &lt;em&gt;features&lt;/em&gt; no idioma PT-BR e que já estão disponíveis em inglês, sendo a mais requisitada a função de construir seu currículo para áreas específicas. Atualmente em português o currículo é construído automaticamente APENAS com as informações do seu perfil&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdiiqvwjom8c0p6q1rbeg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdiiqvwjom8c0p6q1rbeg.png" alt="Img"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1wviz00ku6nnog853vet.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1wviz00ku6nnog853vet.png" alt="Img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;OBS:: Caso também tenha o seu perfil em Inglês e queira mudar para algum outro, é só seguir os passos abaixo mas trocando inglês pelo idioma desejado.  &lt;/p&gt;

&lt;p&gt;OBS2:: Esse método foi testado apenas na versão desktop, não há garantias de funcionar no mobile.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Antes de iniciar
&lt;/h3&gt;

&lt;p&gt;Se o seu LinkedIn tiver em apenas um idioma configurado, diferente da imagem abaixo, pode ir direto para o capítulo Invertendo os idiomas, caso tenha já um idioma secundário (inglês ou qualquer outro) é necessário antes deleta-lo para inserir o novo padrão.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5px2k9bi8i2ef5ru7hsi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5px2k9bi8i2ef5ru7hsi.png" alt="Img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Deletando o idioma secundário
&lt;/h3&gt;

&lt;p&gt;É bem intuitivo e simples, basta clicar no seu perfil para ser redirecionado a ele e no canto direito superior você verá a opção para trocar de idioma.&lt;br&gt;&lt;br&gt;
Clique no ícone do globo&lt;br&gt;&lt;br&gt;
logo após, clique no ícone do X&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjva5klfls9almtdsgqlu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjva5klfls9almtdsgqlu.png" alt="Img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se der algum erro, basta remover seu &lt;strong&gt;nome adicional&lt;/strong&gt;(ou &lt;em&gt;additional name&lt;/em&gt;) ao editar o perfil, deixando-o vazio. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa2o72sxoizspcr3vewyn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa2o72sxoizspcr3vewyn.png" alt="Img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E ao realizar a operação acima e tentar deletar novamente, agora vai tranquilo, pronto para a próxima etapa.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xrgr7f6icz0f90um4kp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xrgr7f6icz0f90um4kp.png" alt="Img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Invertendo os idiomas
&lt;/h3&gt;

&lt;p&gt;Novamente na página do seu perfil agora estará disponível a opção &lt;code&gt;Adicionar perfil em outro idioma&lt;/code&gt;, clique nela.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0nqvhuv7axa6x1n02j3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0nqvhuv7axa6x1n02j3.png" alt="Img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E agora &lt;strong&gt;ATENÇÃO&lt;/strong&gt;, antes de seguir a intuição e adicionar inglês, você tem que clicar na opção &lt;strong&gt;PORTUGUÊS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn235kzvu9wdjqyu8q6ok.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn235kzvu9wdjqyu8q6ok.png" alt="Img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E só então disponibilizará a opção para colocar um novo idioma padrão, e agora sim seleciona o &lt;strong&gt;inglês&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa8v8plmw36jvlcw9crup.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa8v8plmw36jvlcw9crup.png" alt="Img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por fim realize a tradução para o idioma "não padrão", que nesse caso é português. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhz5vbb2whk9ynon6t02c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhz5vbb2whk9ynon6t02c.png" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E pronto, já está disponível os novos atributos para o seu LinkedIn, só resta o trabalho de realizar a tradução de todos os outros campos como Sobre, Experiências, etc.&lt;/p&gt;




&lt;p&gt;Esse artigo foi útil? Deixe um comentário e um like para que alcance mais pessoas e possa ajudar mais gente. &lt;/p&gt;

&lt;p&gt;Minhas redes:&lt;br&gt;&lt;br&gt;
Twitter: &lt;a href="https://twitter.com/JunioKOI" rel="noopener noreferrer"&gt;@juniokoi&lt;/a&gt; &lt;br&gt;
LinkedIn: &lt;a href="https://www.linkedin.com/in/juniokoi/" rel="noopener noreferrer"&gt;in/juniokoi&lt;/a&gt; &lt;br&gt;
Github: &lt;a href="https://github.com/Juniokoi" rel="noopener noreferrer"&gt;@JunioKoi&lt;/a&gt; &lt;/p&gt;

</description>
      <category>linkedin</category>
      <category>braziliandevs</category>
      <category>beginners</category>
    </item>
    <item>
      <title>O problema do React para quem é iniciante</title>
      <dc:creator>Junio Santos</dc:creator>
      <pubDate>Fri, 18 Nov 2022 21:48:39 +0000</pubDate>
      <link>https://dev.to/devjunio/o-problema-do-react-para-quem-e-iniciante-p2b</link>
      <guid>https://dev.to/devjunio/o-problema-do-react-para-quem-e-iniciante-p2b</guid>
      <description>&lt;p&gt;&lt;strong&gt;[TL;DR]&lt;/strong&gt;: React por ser uma biblioteca permite que novos desenvolvedores desenvolvam hábitos ruins e terceirizem soluções que seriam evitados caso utilizassem outras frameworks que definissem padrões no desenvolvimento.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: Entrei recentemente na área de desenvolvimento então ainda estou aprendendo muita coisa e a opinião expressa não tem o intuito de condenar ou julgar, mas refletir e melhorar.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Nesses últimos anos vem surgindo uma onda de pessoas interessadas em entrar na área de programação muito por conta de um marketing abusivo já conhecido, mas também pela grande disponibilidade de tutoriais e cursos gratuitos ou com valores acessíveis que estimulam o aprendizado. E quem decide ir para o desenvolvimento web, mais especificamente na área frontend, recebem indicações para iniciar com React por três motivos:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;É fácil aprender já que necessita de um conhecimento básico em Javascript&lt;/li&gt;
&lt;li&gt;Tem uma grande comunidade, então caso o aluno tenha algum problema geralmente encontra-se uma resposta fácil&lt;/li&gt;
&lt;li&gt;Por ser uma biblioteca, a estrutura do código é simples e fácil compreensão&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;E é nesse terceiro ponto que quero pegar pois toda essa facilidade no começo faz com que o aluno deixe de aprender assuntos essenciais que ao lidar com projetos reais começam a criar &lt;a href="https://medium.com/@FilipeDeschamps/clean-code-2-o-que-%C3%A9-c%C3%B3digo-limpo-869047c1492a"&gt;códigos sujos&lt;/a&gt; ou com uma organização mal estruturada.  &lt;/p&gt;

&lt;p&gt;Eu mesmo iniciei em React e mesmo concluindo vários cursos e bootcamps e no primeiro projeto com desafios reais decorri com vários problemas referentes a &lt;strong&gt;Design de sistema(System design)&lt;/strong&gt; &lt;a href="https://brasil.uxdesign.cc/sistemas-de-design-e-design-de-sistemas-qual-%C3%A9-a-diferen%C3%A7a-72fe7d01b47"&gt;&lt;em&gt;[não confundir com Sistema de design(Design system)]&lt;/em&gt;&lt;/a&gt; como nomenclaturas e estruturação e que nunca foi ensinado ou discutido sobre esses tópicos. No final do desenvolvimento por conta dessas questões me fez pensar que frontend não era para mim e explorei o outras áreas no backend.  &lt;/p&gt;

&lt;p&gt;A imagem abaixo é uma pequena ilustração de como é um projeto feito apenas em React (sem Next), nele estão inclusas chamadas de API, interfaces (também chamado de props), objetos em JSON além de vários componentes, porém é difícil saber o escopo (para onde que é aplicado) destes componentes, e mesmo levando em consideração que é um projeto pequeno será difícil dar manutenção e escalar, caso alguém decida contribuir no código também não será intuitivo compreender &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xWnjHmp2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inrgp8c1hc7j6kaesiax.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xWnjHmp2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inrgp8c1hc7j6kaesiax.png" alt="Exemplo da organização de pastas do React" width="381" height="696"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Meses depois surgiu a oportunidade de aprender Angular e minha impressão foi que o fato de ser uma framework e ter que seguir  regras fez com que fosse necessário compreender mais afundo algumas questões como:   &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gerenciamento de rotas&lt;/li&gt;
&lt;li&gt;Entender WebPack&lt;/li&gt;
&lt;li&gt;Separação de arquivos para cada funcionalidade (e não um arquivo que: mostra um texto, controla o estilo, lida com comunicação com o servidor, tudo isso junto)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A imagem abaixo seria de um projeto em Angular e &lt;strong&gt;calma!&lt;/strong&gt; Só quero destacar a questão de como estão organizadas as pastas e o projeto em si. Temos a pasta onde encontra-se todos os componentes, o app/, e dentro temos a pasta modules que é responsável por agrupar componentes essenciais &lt;em&gt;(core)&lt;/em&gt;, componentes utilizados em várias partes &lt;em&gt;(shared)&lt;/em&gt; e um módulo para cada página, que seria a &lt;em&gt;home(site.com/home)&lt;/em&gt; e &lt;em&gt;timer(site.com/timer)&lt;/em&gt;&lt;br&gt;
Assim se vejo que tem um erro no roteamento do Timer, sei exatamente onde que se encontra. Se eu quiser adicionar um outro módulo como por exemplo o &lt;em&gt;Contato(site.com/contact)&lt;/em&gt;, basta criar uma nova pasta e não afetará em nada o restante do site, então a chance do chamado efeito colateral é quase 0&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E3Hr4DVj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mg0nf64hagvgy9ucjbqf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E3Hr4DVj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mg0nf64hagvgy9ucjbqf.png" alt="Exemplo da organização de pastas do Angular" width="335" height="820"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E sinto que caso eu ficasse apenas no React iria demorar para aprender e entender esses conceitos, claro que muito disso seria resolvido com o NextJS, já que a framework define regras e segue padrões por conta da sua estrutura de diretórios e páginas tornando o projeto até mais fácil de ser &lt;a href="https://blog.tecnospeed.com.br/escalabilidade-de-software-o-que-e/#:~:text=Em%20resumo%2C%20um%20software%20%C3%A9,de%20tornar%20seu%20software%20escal%C3%A1vel."&gt;escalável&lt;/a&gt;, contudo, estaria apenas terceirizando essas decisões já que quem lida com tudo isso no final das contas é a própria framework e deixando ao desenvolvedor somente criar componentes sem entender o que está por trás disso tudo. O que não seja algo necessariamente ruim já que permite ao desenvolvedor passar mais tempo programando, ainda assim problemas de otimização podem surgir se mal explorado.  &lt;/p&gt;

&lt;p&gt;E por conta dessa &lt;em&gt;cultura imediatista&lt;/em&gt; que veio a surgir, novos &lt;em&gt;devs&lt;/em&gt; procuram obter conhecimento de maneira rápida passando por cima de conceitos básicos, e por conta da simplicidade do React é criação hábitos considerados ruins, não porque querem, mas sim por conta de orientação e estímulos (ou falta deles) a apenas criar mas não entender.  &lt;/p&gt;

&lt;p&gt;Assim acredito que uma melhor alternativa seria após aprender Javascript manusear o DOM e entender como manipular os elementos da página e sua estilização, para depois então aprofundar esses conhecimentos testando e explorando frameworks e se possível estudar junto conceitos que são necessários para o mercado como: SOLID, Unit Test, TDD, System Design e tantos outros.  &lt;/p&gt;

&lt;p&gt;Lembrando que não é em relação de se obter expertise sobre todos os assuntos mas ter uma noção geral e explorar aos poucos e revisar os conceitos já aprendidos, buscando aprender mais conforme for surgindo a necessidade e curiosidade. &lt;/p&gt;

&lt;p&gt;-- Fontes:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://medium.com/@FilipeDeschamps/clean-code-2-o-que-%C3%A9-c%C3%B3digo-limpo-869047c1492a"&gt;Filipe Deschamps - O que é Clean Code&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.tecnospeed.com.br/escalabilidade-de-software-o-que-e/#:~:text=Em%20resumo%2C%20um%20software%20%C3%A9,de%20tornar%20seu%20software%20escal%C3%A1vel."&gt;Tecnospeed - O que é Escalabilidade de software&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.geeksforgeeks.org/getting-started-with-system-design/"&gt;Geeks for Geeks - Getting started with System Design&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://brasil.uxdesign.cc/sistemas-de-design-e-design-de-sistemas-qual-%C3%A9-a-diferen%C3%A7a-72fe7d01b47"&gt;Jonatan Zylbersztejn - Sistemas de design e design de sistemas — qual é a diferença?&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>react</category>
      <category>braziliandevs</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Configurando SSH key no WSL / Linux</title>
      <dc:creator>Junio Santos</dc:creator>
      <pubDate>Thu, 28 Apr 2022 05:45:48 +0000</pubDate>
      <link>https://dev.to/devjunio/configurando-ssh-key-no-wsl-linux-4aig</link>
      <guid>https://dev.to/devjunio/configurando-ssh-key-no-wsl-linux-4aig</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Primeiramente gostaria de dedicar este artigo ao &lt;a href="https://www.linkedin.com/school/rocketseat/" rel="noopener noreferrer"&gt;@rocketseat&lt;/a&gt; que me apresentou esse conteúdo através do incrível programa #discover no módulo GitHub. Obrigado por disponibilizar uma plataforma com excelentes conteúdos e de forma totalmente gratuita!&lt;/p&gt;

&lt;p&gt;O artigo foi dividido em duas partes, sendo a primeira os processos realizados em nosso &lt;strong&gt;terminal&lt;/strong&gt;, e a segunda feita no próprio site do &lt;strong&gt;GitHub&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Há não muito tempo atrás costumava manipular meus repositórios através do HTTPS e por mais que seja uma forma fácil ao instalar programas ou simples clones, quando começamos a realmente utilizar as funções do git e necessitamos de &lt;em&gt;git pull&lt;/em&gt;, &lt;em&gt;push&lt;/em&gt; entre outros, lidar com esse repositório com o HTTPS não é a melhor e nem a mais segura durante esse processo, ainda mais quando se trata de um repositório privado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Folgzsq0gb3pulsj1kyx4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Folgzsq0gb3pulsj1kyx4.png" alt="Trecho da página do GitHub que mostra como clonar um repositório com SSH"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E como recentemente o GitHub deixou de utilizar a &lt;a href="https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/" rel="noopener noreferrer"&gt;senha como fator de autenticação&lt;/a&gt; nos repositórios, gerar um Token de Acesso para cada vez que for trabalhar com um repositório final é de alto risco já que estes liberam total acesso para a sua conta, logo uma melhor solução seria criar &lt;a href="https://jumpcloud.com/blog/what-are-ssh-keys" rel="noopener noreferrer"&gt;chaves SSH&lt;/a&gt; e através de um processo simples poder futuramente manipular estes repositórios com bem mais segurança e privacidade.&lt;/p&gt;




&lt;h2&gt;
  
  
  Terminal
&lt;/h2&gt;

&lt;p&gt;Bem, antes de tudo tenha certeza de que você possui instalado em seu computador alguns programas necessários, como o gerador de SSH (&lt;em&gt;openssh-client para **Debian&lt;/em&gt;&lt;em&gt;/ **Ubuntu&lt;/em&gt;* ou &lt;em&gt;plan9port&lt;/em&gt; para Aarch). Caso não possua (ou queira atualizar) é só digitar os comandos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debian&lt;/strong&gt;/ &lt;strong&gt;Ubuntu&lt;/strong&gt; /&lt;strong&gt;Kali:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

apt-get &lt;span class="nb"&gt;install &lt;/span&gt;openssh-client


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Arch&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

yay &lt;span class="nt"&gt;-S&lt;/span&gt; openssh


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;ou&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;pacman &lt;span class="nt"&gt;-S&lt;/span&gt; openssh


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;para outros OS conferir aqui:&lt;br&gt;
&lt;a href="https://docs.crp.to/openssh.html#prerequisites" rel="noopener noreferrer"&gt;OpenSSH | Docs (crp.to)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após isso, o que temos que fazer é usar as ferramentas listadas acima para criar uma chave SSH para que torne possível conectar nossos repositórios com o dispositivo que estamos agora configurando.&lt;/p&gt;

&lt;p&gt;Para então gerar esta chave, precisamos rodar o seguinte comando:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ssh-keygen -t ed25519 -C "seu_email_do_github*@exemplo.com*"&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;-t indica que será criado um arquivo.&lt;/li&gt;
&lt;li&gt;ed25519 - é o padrão de segurança utilizado&lt;/li&gt;
&lt;li&gt;-C mostra que o email colocado a seguir será usado como identificador.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mais informações sobre o comando utilizado está no site oficial do OpenSSH&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.openssh.com/txt/release-8.2" rel="noopener noreferrer"&gt;https://www.openssh.com/txt/release-8.2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E então apenas confirme &lt;strong&gt;sem digitar nada&lt;/strong&gt; as solicitações que o keygen irá fazer, e então você deverá obter uma tela parecida com esta:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F57t3kbi2j0hjjcvf7oiu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F57t3kbi2j0hjjcvf7oiu.png" alt="Mensagem no Terminal que mostra o SHA indicando que foi concluido com sucesso"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;e então verá que foram criado dois novos arquivos na pasta &lt;code&gt;.ssh&lt;/code&gt;, com o comando abaixo é possível confirmar isso:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fym6ha5szjux325ofgjm7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fym6ha5szjux325ofgjm7.png" alt="Descritivo dos itens dentro da pasta .ssh"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora iremos adicionar esta nova chave gerada ao nosso gerenciador de chaves (&lt;code&gt;ssh-agent&lt;/code&gt;), portanto recomendo sair do shell que você está utilizando (&lt;em&gt;zsh&lt;/em&gt;, &lt;em&gt;fish&lt;/em&gt;, ...) e volte para &lt;strong&gt;bash&lt;/strong&gt;, simplesmente digitando o comando&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

bash


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Esta etapa é necessária pois nem toda interface shell suporta comandos de bash (como eval ), agora temos que ter certeza de que o &lt;em&gt;ssh-agent&lt;/em&gt; (Gerenciador de chaves) esteja rodando certinho. Para conferir, digitamos:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;eval&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;ssh-agent &lt;span class="nt"&gt;-s&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;(sem Super Usuário a.k.a **sudo&lt;/em&gt;&lt;em&gt;)&lt;/em&gt;&lt;br&gt;
 e deverá mostrar algo semelhante como: &lt;code&gt;Agent pid 5956&lt;/code&gt;&lt;br&gt;
 *O número acima não é importante e é gerado um novo a cada vez que você realiza este comando.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxmlm6vevk1trsp4vf2f0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxmlm6vevk1trsp4vf2f0.png" alt="Mensagem no Terminal que mostra a resposta do comando eval"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;e para finalmente adicionarmos à SSH gerada o nosso gerenciador basta digitar:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

ssh-add ~/.ssh/id_ed25519


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;note que o id_ed25519 poderá ser diferente caso tenha gerado sua chave com outro sistema de segurança (como ecdsa), então para não ter erro é só ver o resultado do ls que fizemos acima e inserir o nome do arquivo gerado pelo ssh-keygen&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb796g22evt4s891kigcp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb796g22evt4s891kigcp.png" alt="Imagem que indica qual arquivo que deve selecionar"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com isso feito, você deverá ver uma mensagem mostrando que a identidade foi adicionada. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6vmn0h7i209268plbmka.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6vmn0h7i209268plbmka.png" alt="Mensagem que mostra que foi feito com sucesso a operação"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ótimo!! Na parte do terminal terminamos (desculpe o trocadilho) e o que nos resta agora é partir para o site do GitHub adicionar uma outra chave SSH no sistema deles (e assim identificar nosso computador).&lt;/p&gt;




&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;Após fazer o login e estar na página principal, clicamos no nosso ícone no canto superior direito &lt;strong&gt;(1)&lt;/strong&gt; &lt;br&gt;
e depois ir na aba Settings (Configuração) &lt;strong&gt;(2)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikqti5z45n5hwi1kuslr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikqti5z45n5hwi1kuslr.png" alt="Imagem que mostra 2 setas que indicam onde deve-se clicar"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com isso feito, é só seguir para a barra lateral e clicar em &lt;strong&gt;SSH and GPG Keys&lt;/strong&gt;&lt;br&gt;
 (Chaves SSH e GPG)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pr2q0s65fver1qnndm8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pr2q0s65fver1qnndm8.png" alt="Barra lateral mostrando qual a opção certa deve selecionar"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E terá um botão indicando para adicionar uma &lt;em&gt;nova Chave SSH&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdjbfvsuvqmrtm7pobkil.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdjbfvsuvqmrtm7pobkil.png" alt="Indicativo que mostra uma seta vermelha apontando para um botão escrito "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora basta dar título &lt;strong&gt;(1)&lt;/strong&gt; para identificar o seu dispositivo e na parte Key, deverá inserir o texto que está dentro do segundo arquivo gerado pelo ssh-keygen, que terá uma extensão .pub (que no nosso caso é id_ed25519.pub)&lt;/p&gt;

&lt;p&gt;No terminal para acessar basta digitar &lt;code&gt;cat ~/.ssh/id_ed25519.pub&lt;/code&gt; e irá mostrar ali mesmo o texto contigo, copie tudo isso e coloque onde está indicado como KEY na página do GitHub * &lt;strong&gt;(2)&lt;/strong&gt; e por fim clicar em Add SSH Key (Adicionar Chave SSH)* &lt;strong&gt;(3)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncovr4icl8hizioei6ck.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncovr4icl8hizioei6ck.png" alt="3 balões que mostram com uma seta o Titulo, um campo escrito KEY e por fim um botão verde escrito "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;e &lt;em&gt;voilà&lt;/em&gt;!🎉 Sua chave SSH já está configurada no GitHub e poderá trazer repositórios para sua máquina sem nenhum problema! &lt;/p&gt;




&lt;p&gt;Caso tenha sido útil este artigo por favor dê um like e compartilhe para quem não sabia deste processo tão fundamental e simples ao mesmo tempo.&lt;/p&gt;

&lt;p&gt;Muito obrigado pela sua atenção e te vejo na próxima!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Fontes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub usará Access Token como autenticação: &lt;a href="https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/" rel="noopener noreferrer"&gt;https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;O que são Chaves SSH? : &lt;a href="https://jumpcloud.com/blog/what-are-ssh-keys" rel="noopener noreferrer"&gt;https://jumpcloud.com/blog/what-are-ssh-keys&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Checando Chaves SSH existentes | GitHub: &lt;a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys" rel="noopener noreferrer"&gt;https://docs.github.com/en/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Gerando uma nova chave SSH e adicionando ao ssh-agent | GitHub: &lt;a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent" rel="noopener noreferrer"&gt;https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Alternativas caso SSH-agent não funcione | Command not found :: &lt;a href="https://command-not-found.com/ssh-agent" rel="noopener noreferrer"&gt;https://command-not-found.com/ssh-agent&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Instalando OpenSSH nos Sistemas Operacionais | OpenSSH :: &lt;a href="https://docs.crp.to/openssh.html#prerequisites" rel="noopener noreferrer"&gt;https://docs.crp.to/openssh.html#prerequisites&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Notas da última atualização do OpenSSH | OpenSSH: &lt;a href="https://www.openssh.com/txt/release-8.2" rel="noopener noreferrer"&gt;(https://www.openssh.com/txt/release-8.2)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>github</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
