<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux Sin Humo (Publicaciones sobre ssh)</title><link>https://sergiobelkin.com/</link><description></description><atom:link href="https://sergiobelkin.com/categories/ssh.xml" rel="self" type="application/rss+xml"></atom:link><language>es</language><copyright>Contents © 2026 &lt;a href="mailto:sebelk@gmail.com"&gt;sebelk&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-NC-SA"
style="border-width:0; margin-bottom:12px;"
src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png"&gt;&lt;/a&gt;
</copyright><lastBuildDate>Tue, 21 Apr 2026 00:01:47 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Cómo Hacer Túneles SSH</title><link>https://sergiobelkin.com/posts/tuneles-ssh/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;Una de las funcionalidades extraordinarias que posee openssh es la de encapsular el tráfico inseguro a puertos TCP. A continuación vemos algunos ejemplos útiles de cuándo y cómo utilizarlos.&lt;/p&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/aaron-burden-gmy25xvSkq8-unsplash.jpg"&gt;&lt;img src="https://sergiobelkin.com/images/aaron-burden-gmy25xvSkq8-unsplash.thumbnail.jpg" alt="Túneles"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a style='background-color:black;color:white;text-decoration:none;padding:4px 6px;font-family:-apple-system, BlinkMacSystemFont, "San Francisco", "Helvetica Neue", Helvetica, Ubuntu, Roboto, Noto, "Segoe UI", Arial, sans-serif;font-size:12px;font-weight:bold;line-height:1.2;display:inline-block;border-radius:3px' href="https://unsplash.com/@aaronburden?utm_medium=referral&amp;amp;utm_campaign=photographer-credit&amp;amp;utm_content=creditBadge" target="_blank" rel="noopener noreferrer" title="Download free do whatever you want high-resolution photos from Aaron Burden"&gt;&lt;span style="display:inline-block;padding:2px 3px"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" style="height:12px;width:auto;position:relative;vertical-align:middle;top:-2px;fill:white" viewbox="0 0 32 32"&gt;&lt;title&gt;unsplash-logo&lt;/title&gt;&lt;path d="M10 9V0h12v9H10zm12 5h10v18H0V14h10v9h12v-9z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;span style="display:inline-block;padding:2px 3px"&gt;Aaron Burden&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Algunas suposiciones:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;openssh-server.example.com&lt;/code&gt;: Es el host que posee el servicio ssh y el servicio sin cifrar&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otrohost.example.com&lt;/code&gt;: Es un host que posee un servidor web sin TLS pero que carece de ssh.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;192.0.2.1/24&lt;/code&gt;: Es la dirección IP del cliente ssh.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;filtrado.example.com&lt;/code&gt;: Es un host que tiene el puerto del servicio al que queremos acceder pero se encuentra filtrado para el exterior.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;casa.example.com&lt;/code&gt;: Es un host remoto respecto a un servidor ssh accesible desde la red de &lt;code&gt;filtrado.example.com&lt;/code&gt;. Este host está en un lugar en el cual podemos trabajar cómodamente 😊 por fuera de la infraestructura de &lt;code&gt;filtrado.example.com&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="caso-1-redireccionado-desde-un-puerto-local-a-un-puerto-remoto-para-segurizar-un-servicio-sin-cifrar"&gt;Caso 1: Redireccionado desde un puerto local a un puerto remoto para segurizar un servicio sin cifrar&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Queremos segurizar el acceso a un servidor web sin TLS.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;ssh -N -f  -L 10001:localhost:80 openssh-server.example.com&lt;/code&gt; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;80&lt;/code&gt;: Es el puerto que tiene el servicio sin cifrar&lt;/li&gt;
&lt;li&gt;&lt;code&gt;localhost&lt;/code&gt;: Es la dirección en el host servicio-remoto.example.com que escucha en el puerto 80.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;10001&lt;/code&gt;: Es el puerto local al cual tendremos que conectarnos para obtener el servicio web.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-N&lt;/code&gt; No ejecuta comandos en el lado remoto.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-f&lt;/code&gt; El proceso va al segundo plazo antes de la ejecución de comandos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;El url que habrá que poner en el navegador es http://localhost:10001&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="caso-2-redireccionado-desde-un-puerto-local-a-un-puerto-remoto-permitiendo-el-acceso-al-tunel-usuarios-de-la-misma-red-local-para-segurizar-un-servicio-sin-cifrar"&gt;Caso 2: Redireccionado desde un puerto local a un puerto remoto permitiendo el acceso al túnel usuarios de la misma red local para Segurizar un servicio sin cifrar&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Queremos permitir que otros hosts de la red puedan acceder nuestro servicio encapsulado.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;ssh -g -N -f -L 10001:localhost:80 openssh-server.example.com&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-g&lt;/code&gt; Permite acceder a otros hosts de la red 192.0.2.0/24 acceder a el url &lt;strong&gt;http://192.0.2.1:10001/&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="caso-3-redireccionado-desde-un-puerto-local-a-un-puerto-remoto-usando-otro-servidor-ssh-para-acceder-a-un-servicio-sin-tls-ni-ssh"&gt;Caso 3: Redireccionado desde un puerto local a un puerto remoto usando otro servidor ssh para acceder a un servicio sin TLS ni ssh&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;ssh  -N -f -L 10001:otrohost.example.com:80 openssh-server.example.com&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aquí la url será &lt;strong&gt;http://localhost:10001&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="caso-4-crear-un-tunel-en-direccion-inversa-para-acceder-a-un-puerto-ssh-filtrado-utilizacion-de-un-tunel-remoto"&gt;Caso 4: Crear un túnel en dirección inversa para acceder a un puerto SSH filtrado (utilización de un túnel remoto)&lt;/h4&gt;
&lt;p&gt;En este caso, queremos acceder al puerto SSH de &lt;code&gt;filtrado.example.com&lt;/code&gt;, que no es accesible desde internet. Utilizamos &lt;code&gt;casa.example.com&lt;/code&gt; con acceso SSH temporal para redirigir el puerto SSH de &lt;code&gt;filtrado.example.com&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;El comando debe ejecutarse en &lt;strong&gt;&lt;code&gt;filtrado.example.com&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;ssh&lt;span class="w"&gt;  &lt;/span&gt;-N&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;-R&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;9000&lt;/span&gt;:localhost:22&lt;span class="w"&gt; &lt;/span&gt;casa.example.com
&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;22&lt;/code&gt;&lt;/strong&gt;: Es el puerto SSH de &lt;code&gt;filtrado.example.com&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;9000&lt;/code&gt;&lt;/strong&gt;: Es el puerto redirigido en &lt;code&gt;casa.example.com&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para conectarse al puerto SSH de &lt;code&gt;filtrado.example.com&lt;/code&gt; desde &lt;code&gt;casa.example.com&lt;/code&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;ssh&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;9000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;localhost
&lt;/pre&gt;&lt;/div&gt;

&lt;h4 id="caso-5-redireccionamiento-remoto-para-permitir-acceso-compartido-a-un-puerto-filtrado"&gt;Caso 5: Redireccionamiento remoto para permitir acceso compartido a un puerto filtrado&lt;/h4&gt;
&lt;p&gt;En este caso, queremos redirigir el puerto SSH de un servidor filtrado (&lt;code&gt;filtrado.example.com&lt;/code&gt;) hacia un servidor intermedio (&lt;code&gt;casa.example.com&lt;/code&gt;) y permitir que otros hosts que están en la misma red local puedan acceder al túnel.&lt;/p&gt;
&lt;p&gt;Comando para configurar el túnel:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;ssh&lt;span class="w"&gt;  &lt;/span&gt;-N&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;-R&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;.0.0.0:9000:localhost:22&lt;span class="w"&gt; &lt;/span&gt;casa.example.com
&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;0.0.0.0:9000&lt;/code&gt;&lt;/strong&gt;: Permite que el puerto redirigido esté accesible en todas las interfaces de red de &lt;code&gt;casa.example.com&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;localhost:22&lt;/code&gt;&lt;/strong&gt;: Redirige el tráfico al puerto SSH de &lt;code&gt;filtrado.example.com&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para conectarse al túnel desde cualquier host con acceso a &lt;code&gt;casa.example.com&lt;/code&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;ssh&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;9000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;casa.example.com
&lt;/pre&gt;&lt;/div&gt;

&lt;h5 id="requisito-en-casaexamplecom"&gt;Requisito en casa.example.com&lt;/h5&gt;
&lt;p&gt;Habilitar &lt;code&gt;GatewayPorts&lt;/code&gt; en &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;GatewayPorts&lt;span class="w"&gt; &lt;/span&gt;clientspecified
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Con esta configuración si el cliente no especifica explícitamente 0.0.0.0 al crear el túnel, los puertos siguen siendo locales por defecto.&lt;/p&gt;
&lt;p&gt;Reinicia el servicio SSH:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;systemctl&lt;span class="w"&gt; &lt;/span&gt;restart&lt;span class="w"&gt; &lt;/span&gt;sshd
&lt;/pre&gt;&lt;/div&gt;

&lt;h5 id="notas-de-seguridad"&gt;Notas de Seguridad&lt;/h5&gt;
&lt;p&gt;Si el servidor &lt;code&gt;casa.example.com&lt;/code&gt; tiene una IP pública, usar firewalls para limitar el acceso al puerto &lt;code&gt;9000&lt;/code&gt; y restringirlo solo a las máquinas necesarias. Para mayor seguridad, se puede especificar una interfaz específica en lugar de &lt;code&gt;0.0.0.0&lt;/code&gt;.&lt;/p&gt;
&lt;h5 id="troubleshooting"&gt;Troubleshooting&lt;/h5&gt;
&lt;p&gt;En todas las casos usar la opción &lt;code&gt;-v&lt;/code&gt; para obtener realizar debugging. Recordar que dicha opcioń se puede usar múltiples veces para aumentar el detalle.&lt;/p&gt;</description><category>ssh</category><guid>https://sergiobelkin.com/posts/tuneles-ssh/</guid><pubDate>Mon, 18 Nov 2024 00:00:03 GMT</pubDate></item><item><title>OpenSSH, X11Forwarding y Wayland</title><link>https://sergiobelkin.com/posts/openssh-y-wayland/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;Digamos que hay tres maneras de levantar acceder a la interfaz gráfica de un Linux remoto:&lt;/p&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/jj-ying-4XvAZN8_WHo-unsplash.jpg"&gt;&lt;img src="https://sergiobelkin.com/images/jj-ying-4XvAZN8_WHo-unsplash.thumbnail.jpg" alt="red pipe with red ropes"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Photo by JJ Ying on Unsplash&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Accediendo a todo el escritorio&lt;/li&gt;
&lt;li&gt;Accediendo a una aplicación en particular&lt;/li&gt;
&lt;li&gt;Conectándose a un administrador de login remoto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una de las maneras habituales hasta hace relativamente pocos años era abrir aplicaciones gráficas de manera individual usando ssh usando la funcionlidad llamada &lt;strong&gt;X11Forwarding&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="que-es-x11-forwarding"&gt;¿Qué es X11 Forwarding?&lt;/h3&gt;
&lt;p&gt;La mayoría estará de acuerdo con lo poco aconsejable que es usar Xorg en un servidor. Una alternativa menos riesgosa es instalar un programa cliente de X. En ese caso podemos usar el redireccionamiento X11 de ssh. De esta manera los datos viajan cifrados por la red y además, establecerá la variable DISPLAY en la máquina en la cual estamos usando el cliente ssh.
Una de las cosas más ventajosas que tiene el redireccionamiento X es que host remoto no necesita un servidor Xorg real. El programa xauth en el host remoto simula que hay un servidor local ante sus programas clientes pero redireccionando la imagen en la pantalla del cliente ssh. Esto tiene un costado problemático: estamos abriendo un canal desde el servidor ssh al cliente ssh. Por eso es muy importante segurizar el servidor para minimizar los riesgos. El protocolo X es muy antiguo y como tal era muy laxo en cuando a la seguridad, de este modo imponía pocas restricciones en el acceso por red. Durante el paso de los años el Xorg se ha esforzado por reducir esos inconvenientes. De hecho cuando una aplicación remota se abre por ssh X la considera un cliente no confiable, impidiendo el acceso a recursos de clientes confiables.&lt;/p&gt;
&lt;h3 id="el-problema"&gt;El Problema&lt;/h3&gt;
&lt;p&gt;El X Window System o X11 nació en el año 1987, y en los comienzos de Linux se usaba XFree86, una implementación libre (aunque con una licencia considerada problemática).
Pero en 2004 nació Xorg como un fork de XFree86 y desde ese momento reemplazó en general a su antecesor en el reinado de las interfaces gráficas de Linux. 
Sin embargo, algunas distribuciones en la actualidad ofrecen de manera predeterminada Wayland en lugar de Xorg. Kristian Høgsberg un desarrollador de Xorg y de gráficos del kernel Linux creó Wayland en 2008. El propósito de Wayland es proveer una alternativa que sea más fácil para desarrollar y mantener que Xorg. 
Aquí tenemos que recordar que es un compositor: se trata de un software que utiliza buffers de memoria para que la imagen tenga mejor calidad y de paso poder proporcionar ciertos efecto.
Wayland es un protocolo para que un compositor pueda comunicarse con programas clientes y además una implementación de dicho protocolo. 
De esta manera, se dejan las funcionalidades esenciales para que las ejerzan los clientes.&lt;/p&gt;
&lt;p&gt;Es así como llegamos a que Wayland tampoco tiene como propósito ofrecer el renderizado de aplicaciones remotas, es decir, no existe de manera predeterminada algo como WaylandForwarding.
Los desarrolladores de Wayland dicen que podrías en cambio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usar un servidor de renderizado sobre Wayland con soluciones ya existentes ( vnc, rdp, Xorg) o desarrollar uno nuevo.&lt;/li&gt;
&lt;li&gt;Usar y/o desarrollar un protocolo de renderizado remoto en un compositor de wayland.&lt;/li&gt;
&lt;li&gt;Usar y/o desarrollar un compositor remoto aislado o una parte de un compositor de escritorio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GNOME está trabajando con el renderizado de aplicaciones remotas en Wayland y KDE aparentemente también con en su proyecto Plasma.&lt;/p&gt;
&lt;h3 id="una-tuberia-como-camino"&gt;Una tubería como camino&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Waypipe&lt;/strong&gt; programa desarrollado por M. Stoeckl para eñ Google Summer of Code de 2019: es un proxy para clientes de Wayland. Lo interesante es que puede usar ssh para hacer un redireccionamiento de una manera muy sencilla:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;waypipe ssh usuario@servidorssh&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/waypipe.png"&gt;&lt;img src="https://sergiobelkin.com/images/waypipe.thumbnail.png" alt="waypipe"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Ese comando ejecuta dos instancias, una en el cliente y otra en el servidor (es decir debe estar instalado en ambos hosts). La instancia de waypipe que se ejecuta en el servidor ssh simula ser un compositor wayland, y usa un socket Unix para que los programas puedan conectarse. El resultado final es que la aplicación remota se muestra en la pantalla local de wayland.
Las pruebas que realicé sobre CentOS8 como servidor wayland y cliente ssh frente a un servidor Fedora 31 han sido satisfactorias.&lt;/p&gt;
&lt;h3 id="mas-que-mil-palabras"&gt;Más que mil palabras&lt;/h3&gt;
&lt;p&gt;¿Querés ver un video con waypipe en acción? Lo podés ver a continuación:&lt;/p&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/tJdRfKGoIFg" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;

&lt;h3 id="fuentes-de-consulta-y-mas-recursos"&gt;Fuentes de Consulta y Más Recursos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://wayland.freedesktop.org/"&gt;Wayland&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.gnome.org/Initiatives/Wayland/Remoting"&gt;Initiatives/Wayland/Remoting - GNOME Wiki!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.kde.org/Plasma/Wayland_Showstoppers"&gt;Plasma/Wayland Showstoppers - KDE Community Wiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Compositing_window_manager#Comparison_with_stacking_window_managers"&gt;Compositing window manager - Wikipedia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://es.wikipedia.org/wiki/Gestor_de_composici%C3%B3n_de_ventanas"&gt;Gestor de composición de ventanas - Wikipedia, la enciclopedia libre&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.archlinux.org/index.php/Kernel_mode_setting#Background"&gt;Kernel mode setting - ArchWiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/9780596000110.do"&gt;SSH, The Secure Shell: The Definitive Guide - O'Reilly Media&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><category>ssh</category><guid>https://sergiobelkin.com/posts/openssh-y-wayland/</guid><pubDate>Sun, 26 Apr 2020 11:33:41 GMT</pubDate></item><item><title>Como autenticar en ssh con certificado</title><link>https://sergiobelkin.com/posts/como-usar-certificados-ssh-para-autenticar/</link><dc:creator>sebelk</dc:creator><description>&lt;ol&gt;
&lt;li&gt;En un servidor crear un par de claves para firmar claves de usuario.
&lt;br&gt;&lt;code&gt;cd /etc/ssh &amp;amp;&amp;amp; ssh-keygen -f user_ca&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Agregar en el archivo &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt;:
&lt;br&gt;&lt;code&gt;TrustedUserCaKeys /etc/ssh/user_ca.pub&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Reiniciar el servicio
&lt;br&gt;&lt;code&gt;systemctl restart sshd&lt;/code&gt;
&lt;br&gt; &lt;em&gt;Para lograr que los certificados que vamos a generar se puedan usar en otros servidores, habría que copiar en ellos la clave pública (&lt;code&gt;user_ca.pub&lt;/code&gt;), agregar la misma línea y reiniciar el servicio ssh.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Copiar la clave pública del cliente ssh al servidor.
&lt;br&gt;&lt;code&gt;scp ~/.ssh/id_rsa_sergio.pub root@certserver:/etc/ssh/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Generar un certificado a partir de la clave pública.
&lt;br&gt;&lt;code&gt;ssh-keygen -s user_ca -I user_sergio -n sergio,root -V +52w id_rsa_sergio.pub&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copiar el certificado al host del usuario.
&lt;br&gt;&lt;code&gt;scp root@certserver:/etc/ssh/id_rsa_sergio-cert.pub ~/.ssh/&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;Autenticarse con el certificado del usuario.
&lt;br&gt;&lt;code&gt;ssh -i ~/id_rsa_sergio-cert.pub root@certserver&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/auth-ssh-cert.png"&gt;&lt;img src="https://sergiobelkin.com/images/auth-ssh-cert.thumbnail.png" alt="Autenticación a ssh con certificado"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enlaces útiles&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://sergiobelkin.com/posts/tutorial-autenticacion-con-clave-publica/"&gt;Tutorial: Autenticación en SSH con clave pública | Mixturas Resilientes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.habets.se/2011/07/OpenSSH-certificates.html"&gt;OpenSSH certificates&lt;/a&gt; (Mención de honor para este host que es en el cual me basé para la presente guía)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.fedoraproject.org/en-US/Fedora/23/html/System_Administrators_Guide/sec-Using_OpenSSH_Certificate_Authentication.html"&gt;8.3. Using OpenSSH Certificate Authentication&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><category>criptografia</category><category>ssh</category><guid>https://sergiobelkin.com/posts/como-usar-certificados-ssh-para-autenticar/</guid><pubDate>Sat, 16 Nov 2019 08:39:00 GMT</pubDate></item><item><title>Tutorial: Autenticación en SSH con clave pública</title><link>https://sergiobelkin.com/posts/tutorial-autenticacion-con-clave-publica/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;Este es un tutorial para que empecemos a usar claves públicas para autenticarnos. El único requisito es que hayamos ingresado a un servidor o host remoto con ssh. En nuestro ejemplo ese host tiene la ip 10.0.3.11.&lt;/p&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/jametlene-reskp-9DdOrQpMsUs-unsplash.jpg"&gt;&lt;img src="https://sergiobelkin.com/images/jametlene-reskp-9DdOrQpMsUs-unsplash.thumbnail.jpg" alt=""&gt;&lt;/a&gt;i
&lt;br&gt;
&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="https://sergiobelkin.com/posts/tutorial-autenticacion-con-clave-publica/#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;El uso de autenticación por clave pública, tal como vimos en el &lt;a href="https://sergiobelkin.com/posts/guia-breve-ssh-con-clave-publica/"&gt;post anterior&lt;/a&gt; tiene la ventaja de no tener que ingresar usuario y contraseña. Esto puede ser útil en casos en que necesitemos realizar alguna tarea en un host remoto de manera no interactiva. Por ejemplo podríamos crear una tarea programada que ejecute todos los días un script de backup.
Veremos paso a paso como conseguirlo.
Lo primero que tendremos que hacer es generar un par de claves. Para ellos ejecutaremos el siguiente comando:
&lt;code&gt;ssh-keygen&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Como se ve en la imagen de abajo se nos preguntará la ruta de la clave privada, aceptamos la predeterminada presionando la tecla Enter.
&lt;a class="image-reference" href="https://sergiobelkin.com/images/ssh-keygen.png"&gt;&lt;img src="https://sergiobelkin.com/images/ssh-keygen.thumbnail.png" alt=""&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;y además se nos pedirá una passphrase. La passphrase es una frase que sea fácil de recordar para uno mismo, pero a la vez difícil de adivinar para otros. El propósito es cifrar la clave privada. Si te estás preguntando ¿para qué hacer todo esto si de todas maneras tendré que ingresa una passphrase para autenticarme. La respuesta es que tenemos técnicas como veremos un poco más abajo, para evitar la necesidad del ingreso de la frase una y otra vez.
Ingresamos la frase una vez después de la otra:&lt;/p&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/ssh-keygen-2.png"&gt;&lt;img src="https://sergiobelkin.com/images/ssh-keygen-2.thumbnail.png" alt=""&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Esto generará dos archivos en el directorio &lt;code&gt;~/.ssh&lt;/code&gt;: &lt;code&gt;id_rsa&lt;/code&gt; y &lt;code&gt;id_rsa.pub&lt;/code&gt; que son la clave privada y la clave pública respectivamente. Como sus nombres lo indican la clave privada no debe compartirse, en cambio la clave pública es la que nosirve para identificarnos como usuarios frente a otros hosts y se puede compartir.&lt;/p&gt;
&lt;p&gt;En este momento tenemos que copiar la clave pública al host que funciona como servidor ssh. La manera más fácil y ráṕida de hacerlo es con el comando siguiente:&lt;/p&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/ssh-copy-id.png"&gt;&lt;img src="https://sergiobelkin.com/images/ssh-copy-id.thumbnail.png" alt="ssh-copy-id"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Ingresamos la contraseña de root y luego presionamos la tecla Enter. Lo que hace este comando es agregar la clave pública del archivo &lt;code&gt;id_rsa.pub&lt;/code&gt; al archivo /root/.ssh/authorized_keys del servidor ssh.&lt;/p&gt;
&lt;p&gt;Ahora lo que hacemos es reemplazar la shell actual con el agente de ssh y re-ejecutando la shell bash. El agente de ssh será el encargado de guardar las claves privadas en memoria para que no tengamos que ingresar más de una vez la passphrase:&lt;/p&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/ssh-agent.png"&gt;&lt;img src="https://sergiobelkin.com/images/ssh-agent.thumbnail.png" alt="ssh-agent"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Luego ejecutamos el comando &lt;code&gt;ssh-add&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/ssh-add.png"&gt;&lt;img src="https://sergiobelkin.com/images/ssh-add.thumbnail.png" alt="ssh-add"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Se nos pedirá la frase, la ingresamos y le damos Enter.&lt;/p&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/ssh-passwordless.png"&gt;&lt;img src="https://sergiobelkin.com/images/ssh-passwordless.thumbnail.png" alt="ssh sin contraseña"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;A través de este tutorial mencionamos varios conceptos que podés ampliar recurriendo a los siguientes enlaces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.unixwiz.net/techtips/ssh-agent-forwarding.html"&gt;An Illustrated Guide to SSH Agent Forwarding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blakesmith.me/2010/02/08/understanding-public-key-private-key-concepts.html"&gt;understanding public key private key concepts » Blake Smith&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.learningtree.com/ways-manage-ssh-keys-identities/"&gt;Ways to Manage Your SSH Keys and Identities | Learning Tree Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Photo by Jametlene Reskp on Unsplash &lt;a class="footnote-backref" href="https://sergiobelkin.com/posts/tutorial-autenticacion-con-clave-publica/#fnref:1" title="Jump back to footnote 1 in the text"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description><category>criptografia</category><category>ssh</category><guid>https://sergiobelkin.com/posts/tutorial-autenticacion-con-clave-publica/</guid><pubDate>Fri, 08 Nov 2019 12:12:36 GMT</pubDate></item><item><title>Guía Breve sobre ssh con clave pública</title><link>https://sergiobelkin.com/posts/guia-breve-ssh-con-clave-publica/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;La autenticación por clave pública nos permite loguearnos a un host sin necesidad de ingresar usuario y contraseña.&lt;/p&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/cmdr-shane-OHnvp41aDzE-unsplash.jpg"&gt;&lt;img src="https://sergiobelkin.com/images/cmdr-shane-OHnvp41aDzE-unsplash.thumbnail.jpg" alt="Llaves"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a style='background-color:black;color:white;text-decoration:none;padding:4px 6px;font-family:-apple-system, BlinkMacSystemFont, "San Francisco", "Helvetica Neue", Helvetica, Ubuntu, Roboto, Noto, "Segoe UI", Arial, sans-serif;font-size:12px;font-weight:bold;line-height:1.2;display:inline-block;border-radius:3px' href="https://unsplash.com/@cmdrshane?utm_medium=referral&amp;amp;utm_campaign=photographer-credit&amp;amp;utm_content=creditBadge" target="_blank" rel="noopener noreferrer" title="Download free do whatever you want high-resolution photos from CMDR Shane"&gt;&lt;span style="display:inline-block;padding:2px 3px"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" style="height:12px;width:auto;position:relative;vertical-align:middle;top:-2px;fill:white" viewbox="0 0 32 32"&gt;&lt;title&gt;unsplash-logo&lt;/title&gt;&lt;path d="M10 9V0h12v9H10zm12 5h10v18H0V14h10v9h12v-9z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;span style="display:inline-block;padding:2px 3px"&gt;CMDR Shane&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="descripcion-del-metodo"&gt;Descripción del método&lt;/h3&gt;
&lt;h4 id="nociones-fundamentales"&gt;Nociones fundamentales&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;El esquema se basa en criptografía de clave pública.&lt;/li&gt;
&lt;li&gt;Usamos claves separadas para cifrar y descifrar.&lt;/li&gt;
&lt;li&gt;Es imposible obtener la clave para descifrar a partir de la clave para cifrar&lt;/li&gt;
&lt;li&gt;Solamente el cliente sabe la clave privada.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="funcionamiento"&gt;Funcionamiento&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Desde el lado del cliente ssh creamos un par de claves (una pública y otra privada).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cada clave se guarda en archivo separado.&lt;/li&gt;
&lt;li&gt;Tenemos la opción en este momento de cifrar su clave privada mediante una frase de paso. La clave privada queda inutilizable si olvidamos esa contraseña.&lt;/li&gt;
&lt;li&gt;Desde el lado cliente copiamos la clave pública agregándola al archivo &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt; en su directorio de la máquina remota.&lt;/li&gt;
&lt;li&gt;Luego de esto, el usuario puede loguearse sin proporcionar la contraseña.&lt;/li&gt;
&lt;li&gt;Cuando nos logueamos, el programa &lt;code&gt;ssh&lt;/code&gt; le dice al servidor que par de claves le gustaría usar para autenticar. El cliente verifica que tiene acceso a la clave privada y el servidor verifica que la clave correspondiente está autorizada para aceptar la cuenta.&lt;/li&gt;
&lt;li&gt;El servidor puede informarle al cliente los errores que impidan que la autenticación por clave pública se pueda usar exitósamente luego de que la autenticación se complete usando un método diferente. &lt;/li&gt;
&lt;li&gt;De manera predeterminada si falla el método por clave pública se usará otro método, como por ejemplo el de usuario y password.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nota:&lt;em&gt;La manera más conveniente de usar una clave pública es con un agente de autenticación que se encargue de guardar en memora las claves privadas descifradas y de esta manera evitar tener que ingresar una y otra vez la frase de paso correspondiente.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="archivos-involucrados-del-cliente"&gt;Archivos involucrados del cliente&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Archivo&lt;/th&gt;
&lt;th&gt;Descripción&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;/usr/bin/ssh&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;cliente ssh&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;/usr/bin/ssh-keygen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Generador de par de claves (una pública y otra privada). Con la opción -t se puede especificar el algoritmo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;~/.ssh/known_hosts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;claves públicas de los hosts a los que ya accedimos alguna vez&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;~/.ssh/id_rsa&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;(nombre predeterminado con algoritmo RSA)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;~/.ssh/id_ecdsa&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;nombre predeterminado con algoritmo ECDSA&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;~/.ssh/id_ed2551&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;nombre predeterminado con algoritmo ED25519&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="archivos-involucrados-del-servidor"&gt;Archivos involucrados del servidor&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Archivo&lt;/th&gt;
&lt;th&gt;Descripción&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;/usr/sbin/sshd&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;servidor ssh&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;~/.ssh/authorized_keys&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Clave públicas de clientes autorizados&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="formato-de-sshauthorized_keys"&gt;Formato de ~/.ssh/authorized_keys&lt;/h3&gt;
&lt;p&gt;El siguiente es un ejemplo de un archivo que contiene solamente dos claves pública:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="n"&gt;ssh&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;rsa&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;AAAAB3NzaC1yc2EAAAADAQABAAABgQCb96oGSIMquG5UGR6aFXtX6aHboMDS3Pkr8NOuLskabSnSzgUC8IGYvxn86W0xvcWGdVD&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;Qljl6h16ARFXGpCNWSxktl7TWMnbDn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i5AZaJXETV1ZkB5ro5f33gEvaMcZel18X1FcE1RBEJG92ufOoIIastxYo&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;THU8TW0bwVG08&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;hHcPn&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;d9YYEwZ92b&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sTQH3rtcvLrAtsSmI8flVc0M054Tmkhf15fXuVlPeYwqYhCWBT1JGg60Jn3ZrsQvD6di0KRBuw0icfeF1mdHnHSlrb7AhcNFs&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;kds1acWaE3cOINuKJmDHPmsyT6&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;wujnOx&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;TCGVhGC8hm&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="n"&gt;dizkALwks&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;Zt5T1R8o&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;erOu8NFfzG3NvOB9dx9szbAHOxKiJ61FH6qOIUGj74xMNNGmCszz57g3JG8gfFe&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;zc7tlrvXgBIj1ZyY16JC6LkbYjUb5aXJQRLIPSe8XoAJU&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;UkxTjuXU7lCGnMPH0DjvvgLgpZYlWtL8zGqdu&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;ruMOE0S2N8&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@dublin&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ireland&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;

&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="ss"&gt;"yum check-update"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ssh&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;rsa&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;AAAAB3NzaC1yc2EAAAADAQABAAABgQCb96oGSIMquG5UGR6aFXtX6aHboMDS3Pkr8NOuLskabSnSzgUC8IGYvxn86W0xvcWGdVD&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;Qljl6h16ARFXGpCNWSxktl7TWMnbDnCi5AZaJXETV1ZkB5ro5f33gEvaMcZel18X1FcE1RBEJG92ufOoIIastxYo&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;THU8TW0bwVG08&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;hHcPn&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;d9YYEwZ92b&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sTQH3rtcvLrAtsSmI8flVc0M054Tmkhf15fXuVlPeYwqYhCWBT1JGg60Jn3ZrsQvD6di0KRBuw0icfeF1mdHnHSlrb7AhcNFs&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;kds1acWaE3cOINuKJmDHPmsyT6&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;wujnOx&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;TCGVhGC8hm&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="n"&gt;dizkALwks&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;Zt5T1R8o&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;erOu8NFfzG3NvOB9dx9szbAHOxKiJ61FH6qOIUGj74xMNNGmCszz57g3JG8gfFe&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;zc7tlrvXgBIj1ZyY16JC6LkbYjUb5aXJQRLIPSe8XoAJU&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;UkxTjuXU7lCGnMPH0DjvvgLgpZYlWtL8zGqdu&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;ruMOE0S2N8&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@belfast&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ireland&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ssh-rsa&lt;/code&gt; es el tipo de clave&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AAAAB3NzaC1yc2EAAAADAQABAAAegQCb96oGSIMquG5UGR6aFXtX6aHboMDS3Pkr8NOuLskabSnSzgUC8IGYvxn86W0xvcWGdVD+Qljl6h16ARFXGpCNWSxktl7TWMnbDnCi5AZaJXETV1ZkB5ro5f33gEvaMcZel18X1FcE1RBEJG92ufOoIIastxYo+THU8TW0bwVG08/hHcPn+d9YYEwZ92b/sTQH3rtcvLrAtsSmI8flVc0M054Tmkhf15fXuVlPeYwqYhCWBT1JGg60Jn3ZrsQvD6di0KRBuw0icfeF1mdHnHSlrb7AhcNFs+kds1acWaE3cOINuKJmDHPmsyT6+wujnOx+3TCGVhGC8hm/8dizkALwks/1Zt5T1R8o/erOu8NFfzG3NvOB9dx9szbAHOxKiJ61FH6qOIUGj74xMNNGmCszz57g3JG8gfFe+zc7tlrvXgBIj1ZyY16JC6LkbYjUb5aXJQRLIPSe8XoAJU+UkxTjuXU7lCGnMPH0DjvvgLgpZYlWtL8zGqdu+ruMOE0S2N8=&lt;/code&gt; es la clave pública codificada en base64&lt;/li&gt;
&lt;li&gt;&lt;code&gt;root@dublin.ireland.home&lt;/code&gt; es un comentario opcional&lt;/li&gt;
&lt;li&gt;&lt;code&gt;command=yum check-update&lt;/code&gt; en la segunda línea restringe el acceso permitiendo la ejecución de un único comando.&lt;/li&gt;
&lt;li&gt;El contenido de este archivo debería tener permisos 0600 y el directorio &lt;code&gt;~/.ssh&lt;/code&gt; 0700.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fuentes-y-mas-recursos"&gt;Fuentes y más recursos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.openssh.com/manual.html"&gt;OpenSSH: Manual Pages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ietf.org/rfc/rfc4252.txt"&gt;ietf.org/rfc/rfc4252.txt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.openssh.com/txt/draft-ietf-secsh-publickeyfile-02.txt"&gt;openssh.com/txt/draft-ietf-secsh-publickeyfile-02.txt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://man.openbsd.org/ssh-keygen"&gt;ssh-keygen(1) - OpenBSD manual pages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tools.ietf.org/html/draft-miller-ssh-agent-00"&gt;draft-miller-ssh-agent-00 - SSH Agent Protocol&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><category>ssh</category><guid>https://sergiobelkin.com/posts/guia-breve-ssh-con-clave-publica/</guid><pubDate>Sun, 03 Nov 2019 21:33:32 GMT</pubDate></item></channel></rss>