{"id":997,"date":"2026-08-28T11:19:23","date_gmt":"2026-08-28T11:19:23","guid":{"rendered":"https:\/\/arripio.com.br\/?p=997"},"modified":"2026-08-28T11:19:27","modified_gmt":"2026-08-28T11:19:27","slug":"autenticacao-ssh-com-duplo-fator-google-authenticator%ef%bf%bc","status":"publish","type":"post","link":"https:\/\/arripio.com.br\/?p=997","title":{"rendered":"Autentica\u00e7\u00e3o SSH com Duplo Fator Google Authenticator\ufffc"},"content":{"rendered":"\n<p><strong>1.Instalar o m\u00f3dulo PAM do Google Authenticator:<\/strong>Ubuntu \/ Debian.<\/p>\n\n\n\n<p>Atualize os reposit\u00f3rios do sistema e instale o pacote PAM necess\u00e1rio para integrar tokens tempor\u00e1rios ao processo de login:<\/p>\n\n\n\n<p>Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt install libpam-google-authenticator -y\n<\/code><\/pre>\n\n\n\n<p><strong>2.Gerar a chave 2FA e configurar o aplicativo:<\/strong><\/p>\n\n\n\n<p>Execute o utilit\u00e1rio no terminal para criar o segredo individual do seu usu\u00e1rio:<\/p>\n\n\n\n<p>Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>google-authenticator\n<\/code><\/pre>\n\n\n\n<p>Ser\u00e1 exibido um <strong>QR Code grande<\/strong> no terminal. Abra o app (Google Authenticator, Authy ou 1Password) no celular e escaneie o c\u00f3digo.<\/p>\n\n\n\n<p>Responda \u00e0s perguntas no terminal da seguinte forma:<\/p>\n\n\n\n<ul><li><strong>Make tokens time-based?<\/strong> <code>y<\/code><\/li><li><strong>Update .google_authenticator file?<\/strong> <code>y<\/code><\/li><li><strong>Disallow multiple uses of the same token?<\/strong> <code>y<\/code><\/li><li><strong>Increase window size (rate-limiting)?<\/strong> <code>n<\/code><\/li><li><strong>Enable rate-limiting?<\/strong> <code>y<\/code><\/li><\/ul>\n\n\n\n<p><strong>Guarde os c\u00f3digos de emerg\u00eancia (emergency scratch codes)<\/strong> exibidos no terminal em um local seguro. Eles s\u00e3o seu \u00fanico acesso caso perca o celular.<\/p>\n\n\n\n<p><strong>3.Configurar o PAM para solicitar o token no SSH:<\/strong><\/p>\n\n\n\n<p>Edite o arquivo de configura\u00e7\u00e3o de autentica\u00e7\u00e3o do SSH:<\/p>\n\n\n\n<p>Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/pam.d\/sshd\n<\/code><\/pre>\n\n\n\n<p>Adicione a seguinte linha ao final do arquivo:<\/p>\n\n\n\n<p>Plaintext<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>auth required pam_google_authenticator.so nullok\n<\/code><\/pre>\n\n\n\n<p><em>Nota: O par\u00e2metro <code>nullok<\/code> permite que usu\u00e1rios que ainda n\u00e3o configuraram o 2FA continuem logando at\u00e9 realizarem a etapa inicial.<\/em><\/p>\n\n\n\n<p><strong>4.Ajustar o servi\u00e7o OpenSSH:<\/strong><\/p>\n\n\n\n<p>Edite as configura\u00e7\u00f5es do servidor SSH para exigir o desafio interativo:<\/p>\n\n\n\n<p>Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/ssh\/sshd_config\n<\/code><\/pre>\n\n\n\n<p>Altere ou confirme as seguintes diretivas dentro do arquivo:<\/p>\n\n\n\n<p>Plaintext<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>KbdInteractiveAuthentication yes\nUsePAM yes\n<\/code><\/pre>\n\n\n\n<p><em>(Em vers\u00f5es mais antigas do OpenSSH, a op\u00e7\u00e3o pode se chamar <code>ChallengeResponseAuthentication yes<\/code>).<\/em><\/p>\n\n\n\n<p>Se voc\u00ea usa <strong>Chaves SSH (<code>pubkey<\/code>)<\/strong> e deseja exigir <strong>Chave SSH + C\u00f3digo 2FA<\/strong>, adicione ao final do arquivo:<\/p>\n\n\n\n<p>Plaintext<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>AuthenticationMethods publickey,keyboard-interactive\n<\/code><\/pre>\n\n\n\n<p><strong>5.Reiniciar o SSH e validar a conex\u00e3o:<\/strong><\/p>\n\n\n\n<p>Aplique as altera\u00e7\u00f5es reiniciando o daemon do SSH:<\/p>\n\n\n\n<p>Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart ssh\n<\/code><\/pre>\n\n\n\n<p>Abra <strong>uma nova janela do terminal<\/strong> e tente se conectar ao servidor:<\/p>\n\n\n\n<p>Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh usuario@ip_do_servidor\n<\/code><\/pre>\n\n\n\n<p>O servidor solicitar\u00e1 a verifica\u00e7\u00e3o da chave\/senha e, em seguida, o prompt exibir\u00e1 <code>Verification code:<\/code>. Digite o c\u00f3digo de 6 d\u00edgitos gerado no aplicativo do celular.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1.Instalar o m\u00f3dulo PAM do Google Authenticator:Ubuntu \/ Debian. Atualize os reposit\u00f3rios do sistema e instale o pacote PAM necess\u00e1rio para integrar tokens tempor\u00e1rios ao processo de login: Bash 2.Gerar a chave 2FA e configurar o aplicativo: Execute o utilit\u00e1rio&hellip; <br \/><a class=\"read-more-button\" href=\"https:\/\/arripio.com.br\/?p=997\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[1],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pazGcY-g5","jetpack-related-posts":[{"id":736,"url":"https:\/\/arripio.com.br\/?p=736","url_meta":{"origin":997,"position":0},"title":"Meu uso do comando screen no lINUX","date":"18 Maio, 2021","format":false,"excerpt":"Normalmente eu fa\u00e7o uso do screen quando vou executar comando de grande dura\u00e7\u00e3o e que em caso de perder a sess\u00e3o do meu ssh n\u00e3o interrompa o trabalho no meio da execu\u00e7\u00e3o. Basicamente ele executa o comando em uma sess\u00e3o em background na qual vc pode verificar a qualquer momento\u2026","rel":"","context":"In &quot;Sem categoria&quot;","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/img.youtube.com\/vi\/wDHKbiR7Hts\/0.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":73,"url":"https:\/\/arripio.com.br\/?p=73","url_meta":{"origin":997,"position":1},"title":"Administra\u00e7\u00e3o de Rede 210","date":"9 Junho, 2014","format":false,"excerpt":"DHCP host ArripioLinux{ hardware ethernet 00:00:00:00:00:00; fix-address 10.1.0.3; } option domain-name-servers option domain-name \"Arripio.net\"; Tipo de de autentica\u00e7\u00e3o PAM account auth password session Controle do PAM requisite -> autentica\u00e7\u00e3o \u00e9 imediata negada, no caso de negativa do m\u00f3dulo required ->autentica\u00e7\u00e3o recusada no caso de negativa do m\u00f3dulo , mas consultar\u00e1\u2026","rel":"","context":"In &quot;Automa\u00e7\u00e3o&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":97,"url":"https:\/\/arripio.com.br\/?p=97","url_meta":{"origin":997,"position":2},"title":"LPIC-2 202 PAM Authentication","date":"29 Junho, 2014","format":false,"excerpt":"Arquivos de configura\u00e7\u00e3o O prop\u00f3sito do do projeto PAM \u00e9 separar a concess\u00e3o de privil\u00e9gios nos aplicativos do desenvolvimento de esquemas de autentica\u00e7\u00e3o apropriados e seguros. Isto \u00e9 realizado fornecendo-se uma biblioteca de fun\u00e7\u00f5es utilizada pelas aplica\u00e7\u00f5es para solicitar a autentica\u00e7\u00e3o de usu\u00e1rios.\u00a0 As bibliotecas PAM s\u00e3o configuradas no arquivo\u00a0\/etc\/pam.conf\u00a0ou\u2026","rel":"","context":"In &quot;Automa\u00e7\u00e3o&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":42,"url":"https:\/\/arripio.com.br\/?p=42","url_meta":{"origin":997,"position":3},"title":"LPIC-2 Compartilhamento de arquivo 209","date":"24 Maio, 2014","format":false,"excerpt":"Configura\u00e7\u00e3o do Servidor SAMBA: [global] netbios name = servidor workgroup =\u00a0ArripioLinux security = user obey pam restrictions = yes encrypt passwords = no os level = 10 guest account = nobody server string = servidor da rede local master = true domain master = false [homes] comment = Diret\u00f3rios de\u2026","rel":"","context":"In &quot;Cerifica\u00e7\u00e3o LPIC-2 202&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":347,"url":"https:\/\/arripio.com.br\/?p=347","url_meta":{"origin":997,"position":4},"title":"Replica\u00e7\u00e3o - Percona - Xtrabackup - keepalived.","date":"25 Novembro, 2015","format":false,"excerpt":"Autor: Dauro Lima Sobrinho Este tutorial tem como objetivo auxiliar a instala\u00e7\u00e3o e configura\u00e7\u00e3o de uma solu\u00e7\u00e3o de alta disponibilidade com replica\u00e7\u00e3o dos dados no SGBD Percona Server 5.6.26, utilizando Percona Xtrabackup e o keepalived. Distribui\u00e7\u00e3o: CentOS 6.7 Node 1: 10.1.31.70 Node 2: 10.1.31.71 1\u00ba Passo: Instalar o reposit\u00f3rio Percona.\u2026","rel":"","context":"In &quot;Sem categoria&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":789,"url":"https:\/\/arripio.com.br\/?p=789","url_meta":{"origin":997,"position":5},"title":"Rsync n\u00e3o faz an\u00e1lise de checksum dos arquivos por padr\u00e3o","date":"20 Dezembro, 2023","format":false,"excerpt":"Rsync n\u00e3o faz an\u00e1lise de checksum dos arquivos por padr\u00e3o Do man rsync \u00a0 \u00a0 \u00a0 \u00a0Rsync \u00a0finds \u00a0files \u00a0that \u00a0need to be transferred using a \"quick check\" algorithm (by default) that looks for files \u00a0 \u00a0 \u00a0 \u00a0that have changed in size or in last-modified time. \u00a0Any changes in\u2026","rel":"","context":"In &quot;Sem categoria&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/arripio.com.br\/index.php?rest_route=\/wp\/v2\/posts\/997"}],"collection":[{"href":"https:\/\/arripio.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arripio.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arripio.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arripio.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=997"}],"version-history":[{"count":4,"href":"https:\/\/arripio.com.br\/index.php?rest_route=\/wp\/v2\/posts\/997\/revisions"}],"predecessor-version":[{"id":1001,"href":"https:\/\/arripio.com.br\/index.php?rest_route=\/wp\/v2\/posts\/997\/revisions\/1001"}],"wp:attachment":[{"href":"https:\/\/arripio.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=997"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arripio.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=997"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arripio.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}