{"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 class=\"wp-block-paragraph\"><strong>1.Instalar o m\u00f3dulo PAM do Google Authenticator:<\/strong>Ubuntu \/ Debian.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>2.Gerar a chave 2FA e configurar o aplicativo:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Execute o utilit\u00e1rio no terminal para criar o segredo individual do seu usu\u00e1rio:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>google-authenticator\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Responda \u00e0s perguntas no terminal da seguinte forma:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><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 class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\"><strong>3.Configurar o PAM para solicitar o token no SSH:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edite o arquivo de configura\u00e7\u00e3o de autentica\u00e7\u00e3o do SSH:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Adicione a seguinte linha ao final do arquivo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\"><strong>4.Ajustar o servi\u00e7o OpenSSH:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edite as configura\u00e7\u00f5es do servidor SSH para exigir o desafio interativo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Altere ou confirme as seguintes diretivas dentro do arquivo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Plaintext<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>KbdInteractiveAuthentication yes\nUsePAM yes\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Plaintext<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>AuthenticationMethods publickey,keyboard-interactive\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5.Reiniciar o SSH e validar a conex\u00e3o:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aplique as altera\u00e7\u00f5es reiniciando o daemon do SSH:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart ssh\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Abra <strong>uma nova janela do terminal<\/strong> e tente se conectar ao servidor:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[1],"tags":[],"class_list":["post-997","post","type-post","status-publish","format-standard","hentry","category-sem-categoria"],"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":97,"url":"https:\/\/arripio.com.br\/?p=97","url_meta":{"origin":997,"position":1},"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":73,"url":"https:\/\/arripio.com.br\/?p=73","url_meta":{"origin":997,"position":2},"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":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":47,"url":"https:\/\/arripio.com.br\/?p=47","url_meta":{"origin":997,"position":4},"title":"Como alcan\u00e7ar sucesso pessoal e profissional?","date":"24 Maio, 2014","format":false,"excerpt":"Como alcan\u00e7ar sucesso pessoal e profissional? O Segredo esta na\u00a0otimiza\u00e7\u00e3o do tempo em fun\u00e7\u00e3o da sua meta. Voc\u00ea n\u00e3o pode deixar as coisas substanciais se tornarem urgentes ent\u00e3o para isso e necess\u00e1rio: Definir metas e dedicar todo seu tempo em busca delas. Uma das ferramentas mais usadas em\u00a0boas praticas de\u2026","rel":"","context":"In &quot;Coach&quot;","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/107.170.191.119\/wp-content\/uploads\/2014\/05\/ciclo-pdca-300x269.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":529,"url":"https:\/\/arripio.com.br\/?p=529","url_meta":{"origin":997,"position":5},"title":"O que \u00e9 Keepalived?","date":"26 Abril, 2017","format":false,"excerpt":"O que \u00e9 Keepalived? Keepalived \u00e9 um software de roteamento escrito em C. O principal objetivo deste projeto \u00e9 fornecer instala\u00e7\u00f5es simples e robustas para loadbalancing e alta disponibilidade para o sistema Linux e infra-estruturas baseadas em Linux. A estrutura de balanceamento de carga baseia-se no conhecido e amplamente utilizado\u2026","rel":"","context":"In &quot;Sem categoria&quot;","img":{"alt_text":"keepalived","src":"https:\/\/i2.wp.com\/arripio.com.br\/wp-content\/uploads\/2017\/04\/keepalived-640x480.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/arripio.com.br\/index.php?rest_route=\/wp\/v2\/posts\/997","targetHints":{"allow":["GET"]}}],"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}]}}