<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Linux Code</title>
	<atom:link href="http://linuxcode.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://linuxcode.wordpress.com</link>
	<description>Linux, programación, y algunas cosas más..</description>
	<lastBuildDate>Wed, 27 Jul 2011 00:02:24 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='linuxcode.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Linux Code</title>
		<link>http://linuxcode.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://linuxcode.wordpress.com/osd.xml" title="Linux Code" />
	<atom:link rel='hub' href='http://linuxcode.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Tip: Habilitar flash en Chrome</title>
		<link>http://linuxcode.wordpress.com/2009/08/26/tip-habilitar-flash-en-chrome/</link>
		<comments>http://linuxcode.wordpress.com/2009/08/26/tip-habilitar-flash-en-chrome/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 14:43:38 +0000</pubDate>
		<dc:creator>illbnet</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Navegadores]]></category>

		<guid isPermaLink="false">http://linuxcode.wordpress.com/?p=64</guid>
		<description><![CDATA[Cómo habilitar flash en Google Chrome<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxcode.wordpress.com&amp;blog=8820632&amp;post=64&amp;subd=linuxcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-65" title="chrome_logo" src="http://linuxcode.files.wordpress.com/2009/08/chrome_logo.png?w=150&#038;h=145" alt="chrome_logo" width="150" height="145" /><span style="font-weight:normal;font-size:13px;background-color:#ffffff;">Partimos del supuesto que tienes instalado en tu equipo Google Chrome (<em>de no ser así, puedes agregarlo desde el menú de aplicaciones</em>) y también Flash (<em>si tampoco lo tienes, puedes descargarlo desde la </em><a href="http://get.adobe.com/es/flashplayer/"><em>página de Adobe</em></a>). Así que vamos a ir directamente al grano, <strong>habilitar el soporte para flash en Google Chrome Linux.<br />
</strong></span></p>
<p><span style="font-weight:normal;font-size:13px;background-color:#ffffff;"><strong><span style="font-weight:normal;background-color:#ffffff;">Nos desplazamos hasta el directorio principal:</span></strong></span></p>
<p><span style="background-color:#ffffff;"><code>cd /opt/google/chrome/</code></span></p>
<p><span style="background-color:#ffffff;">Creamos el directorio &#8216;plugins&#8217;:</span></p>
<p><span style="background-color:#ffffff;"><code>sudo mkdir plugins</code></span></p>
<p><span style="background-color:#ffffff;">Creamos un enlace simbólico a los plugins que tenemos ya instalados y que se actualizan vía repositorios. </span></p>
<p><span style="background-color:#ffffff;"><code>sudo ln -s /usr/lib/mozilla/plugins/* /opt/google/chrome/plugins</code></span></p>
<p><span style="background-color:#ffffff;">O también puedes hacerlo dirigiéndote al directorio <strong>/opt/google/chrome/plugins</strong> y desde ahí ejecutar:</span></p>
<p><span style="background-color:#ffffff;"><code>sudo ln -s ../../flashplugin-installer/libflashplayer.so</code></span></p>
<p><span style="background-color:#ffffff;">Para activar los plugins, según estés en Gnome o KDE puedes hacer lo siguiente:</span></p>
<ul>
<li>Si estás en <strong>Gnome</strong>, pulsas <strong>ALT+F2</strong>, y escribes en el lanzador &#8216;<strong>alacarte</strong>&#8216; y nos dirigimos a: <em>Ejecutar</em> &gt; <em>Menú principal</em> &gt; <em>Internet</em> &gt; <em>Google Chrome</em> &gt; <em>Propiedades </em>&gt; <em>Comando</em>. Y escribimos dejando un espacio respecto a lo anterior: <strong>&#8211;enable-plugins</strong>.</li>
<li>Si estás en <strong>KDE</strong>, pulsas <strong>ALT+F2</strong>, y escribes en el lanzador &#8216;<strong>kmenuedit</strong>&#8216;: botón &#8220;<em>Ejecutar</em>&#8221; &gt; <em>Internet</em> &gt; <em>Google Chrome</em> &gt; pestaña &#8220;<em>General</em>&#8221; y como hemos hecho en el caso anterior, añadimos: <strong>&#8211;enable-plugins</strong>.</li>
</ul>
<p>Debería de quedar finalmente una línea como esta:</p>
<p><code>opt/google/chrome/google-chrome %U --enable-extensions --enable-plugins</code></p>
<p>Por último, para que los cambios realizados surtan efecto, reiniciamos Gnome o KDE:</p>
<p><code>killall gnome-panel</code></p>
<p>Y ya podrás disfrutar de cualquier contenido que requiera flash desde tu navegador.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxcode.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxcode.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/linuxcode.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/linuxcode.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/linuxcode.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/linuxcode.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/linuxcode.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/linuxcode.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/linuxcode.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/linuxcode.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/linuxcode.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/linuxcode.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/linuxcode.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/linuxcode.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxcode.wordpress.com&amp;blog=8820632&amp;post=64&amp;subd=linuxcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxcode.wordpress.com/2009/08/26/tip-habilitar-flash-en-chrome/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/605eecf3f3c3ee710b222f182624bd89?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">illbnet</media:title>
		</media:content>

		<media:content url="http://linuxcode.files.wordpress.com/2009/08/chrome_logo.png?w=150" medium="image">
			<media:title type="html">chrome_logo</media:title>
		</media:content>
	</item>
		<item>
		<title>scp, transmitiendo información de forma segura</title>
		<link>http://linuxcode.wordpress.com/2009/08/25/scp-transmitiendo-informacion-de-forma-segura/</link>
		<comments>http://linuxcode.wordpress.com/2009/08/25/scp-transmitiendo-informacion-de-forma-segura/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 00:26:23 +0000</pubDate>
		<dc:creator>illbnet</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[scp]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://linuxcode.wordpress.com/?p=50</guid>
		<description><![CDATA[Secure Copy o scp es un medio de transferencia segura de archivos entre un host local y otro remoto, o entre dos hosts remotos.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxcode.wordpress.com&amp;blog=8820632&amp;post=50&amp;subd=linuxcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hace unos días explicábamos <a href="http://linuxcode.wordpress.com/2009/08/05/iniciacion-a-ssh/">como instalar en nuestro equipo OpenSSH</a>. Hoy vamos a ver cómo utilizar scp.</p>
<h2>¿Qué es scp?<img class="alignright size-full wp-image-12" title="icono-ventanas" src="http://linuxcode.files.wordpress.com/2009/08/ico-ventanas.jpg?w=425" alt="icono-ventanas"   /></h2>
<p><strong>Wikipedia</strong></p>
<blockquote><p><strong>Secure Copy</strong> o scp es un medio de transferencia segura de archivos entre un host local y otro remoto, o entre dos hosts remotos.</p>
<p><span style="background-color:#ffffff;">A diferencia de rcp, scp permite<strong> encriptar los datos</strong> durante su transferencia, evitando así que cualquier usuario pueda extraer información de nuestro paquete de datos.</span></p></blockquote>
<h2>¿Cómo empezar a usarlo?</h2>
<p>Un vistazo rápido a la página de ayuda sobre scp nos muestra su sintáxis:</p>
<blockquote><p><strong>scp</strong> [<strong>-1246BCpqrv</strong>] [<strong>-c</strong> cipher] [<strong>-F</strong> ssh_config] [<strong>-i</strong> identity_file] [<strong>-l</strong> limit] [<strong>-o</strong> ssh_option] [<strong>-P</strong> port] [<strong>-S</strong> program] [<br />
[user@]host1:]file1 [...] [                                      [user@]host2:]file2</p></blockquote>
<p>Para comprender la funcionalidad de cada opción, puedes visitar la <a href="http://linux.die.net/man/1/scp">entrada del manual para scp</a>.</p>
<p>Expongamos unos ejemplos que nos permitan familiarizarnos:</p>
<ul>
<li><span style="background-color:#ffffff;">Copiar un archivo de una máquina remota a una local</span>
<ul>
<li><span style="background-color:#ffffff;"><code>scp username@remotehost:file.txt /local/directory</code></span></li>
</ul>
</li>
<li><span style="background-color:#ffffff;">Copiar un archivo de una máquina local a una remota</span>
<ul>
<li><span style="background-color:#ffffff;"><code>scp file.txt username@remotehost:/remote/directory<br />
</code></span></li>
</ul>
</li>
<li><span style="background-color:#ffffff;">Copiar un archivo de una máquina remota a otra remota</span>
<ul>
<li><span style="background-color:#ffffff;"><code>scp username@remotehost1:/remote/directory/file.txt \<br />
username@remotehost2:/remote/directory</code></span></li>
</ul>
</li>
<li><span style="background-color:#ffffff;">Copiar varios archivos de tu máquina local al directorio home de tu máquina remota</span>
<ul>
<li><span style="background-color:#ffffff;"><code>scp file1.txt file2.txt username@remotehost:~</code></span></li>
</ul>
</li>
<li><span style="background-color:#ffffff;">Copiar múltiples archivos de una máquina remota a tu directorio actual en la máquina local</span>
<ul>
<li><span style="background-color:#ffffff;"><code>scp username@remotehost:/remote/directory/\{a,b,c\} .</code></span></li>
<li><span style="background-color:#ffffff;"><code>scp username@remotehost:/remote/directory/\{file1.txt,file2.txt\} .</code></span></li>
</ul>
</li>
</ul>
<p>También puedes copiar directorios completos utilizando la opción<strong> -r</strong> para ello:</p>
<ul>
<li><span style="background-color:#ffffff;">Copiar el directorio &#8216;etc&#8217; de una máquina local a una remota</span>
<ul>
<li><span style="background-color:#ffffff;"><code>scp -r /etc username@remotehost:/remote/directory</code></span></li>
</ul>
</li>
</ul>
<p>Los casos que hemos explicado para los ficheros también son aplicables en directorios.</p>
<h2>Mejorando el rendimiento de scp</h2>
<p>Si has echado un vistazo a las opciones que incluye scp habrás advertido <strong>-c</strong> y <strong>-C</strong>. En caso de no ser así, damos una breve explicación:</p>
<ul>
<li><span style="background-color:#ffffff;"><strong>-c cypher_spec</strong></span></li>
</ul>
<p style="padding-left:30px;">Nos permite elegir la técnica de cifrado a usar para encriptar la transferencia de datos. Si estamos usando la versión 1 del protocolo, podemos usar: &#8216;<a href="http://es.wikipedia.org/wiki/Triple_DES">3des</a>&#8216;, &#8216;<a href="http://es.wikipedia.org/wiki/Blowfish">blowfish</a>&#8216; y &#8216;<a href="http://es.wikipedia.org/wiki/Data_Encryption_Standard">des</a>&#8216;. <strong>3Des</strong> (<em>triple-des</em>) es una triple encriptación-desencriptación que usa 3 llaves diferentes. <strong>Blowfish</strong> es un codificador de bloques simétricos, muy seguro y bastante más rápido que 3des. <strong>Des</strong> únicamente está soportado en aquellos clientes ssh que implemente la versión 1 del protocolo y no disponen de soporte para el cifrado 3des.-</p>
<p style="padding-left:30px;">Para la versión 2 del protocolo, tenemos: &#8216;<em>3des-cbc</em>&#8216;, &#8216;<em>aes128-cbc</em>&#8216;, &#8216;<em>aes192-cbc</em>&#8216;, &#8216;<em>aes256-cbc</em>&#8216;, &#8216;<em>aes128-ctr</em>&#8216;, &#8216;<em>aes192-ctr</em>&#8216;, &#8216;<em>aes256-ctr</em>&#8216;, &#8216;<em>arcfour128</em>&#8216;, &#8216;<em>arcfour256</em>&#8216;, &#8216;<em>arcfour</em>&#8216;, &#8216;<em>blowfish-cbc</em>&#8216; y &#8216;<em>cast128-cbc</em>&#8216;.</p>
<ul>
<li><span style="background-color:#ffffff;"><strong>-C</strong></span></li>
</ul>
<p style="padding-left:30px;">Habilita la compresión de los datos.</p>
<p>Por defecto <strong>scp usa 3des</strong> para encriptar los datos, si quieres puedes aumentar la velocidad de transferencia utilizando blowfish en su lugar. Esto puedes hacerlo especificando la opción <strong>-c blowfish</strong></p>
<p><code>scp -c blowfish local_file username@remote_host:remote_dir<br />
</code><br />
También puedes comprimir los datos que vayas a enviar, en caso de disponer de una conexión lenta.</p>
<p><code>scp -c blowfish -C local_file username@remote_host:remote_dir</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxcode.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxcode.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/linuxcode.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/linuxcode.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/linuxcode.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/linuxcode.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/linuxcode.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/linuxcode.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/linuxcode.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/linuxcode.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/linuxcode.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/linuxcode.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/linuxcode.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/linuxcode.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxcode.wordpress.com&amp;blog=8820632&amp;post=50&amp;subd=linuxcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxcode.wordpress.com/2009/08/25/scp-transmitiendo-informacion-de-forma-segura/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/605eecf3f3c3ee710b222f182624bd89?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">illbnet</media:title>
		</media:content>

		<media:content url="http://linuxcode.files.wordpress.com/2009/08/ico-ventanas.jpg" medium="image">
			<media:title type="html">icono-ventanas</media:title>
		</media:content>
	</item>
		<item>
		<title>Autentificación mediante claves públicas en SSH</title>
		<link>http://linuxcode.wordpress.com/2009/08/08/autentificacion-mediante-claves-publicas-en-ssh/</link>
		<comments>http://linuxcode.wordpress.com/2009/08/08/autentificacion-mediante-claves-publicas-en-ssh/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 02:04:09 +0000</pubDate>
		<dc:creator>illbnet</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[DSA]]></category>
		<category><![CDATA[keys]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[RSA]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://linuxcode.wordpress.com/?p=24</guid>
		<description><![CDATA[En criptografía, se denomina una infraestructura de clave pública a una combinación de hardware, software y procedimientos de seguridad que permiten la ejecución con garantías de operaciones criptográficas como el cifrado, la firma digital o el no rechazo de transacciones electrónicas.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxcode.wordpress.com&amp;blog=8820632&amp;post=24&amp;subd=linuxcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>¿Qué son las claves públicas?</h2>
<p><strong>Wikipedia<img class="alignright size-full wp-image-27" title="networking" src="http://linuxcode.files.wordpress.com/2009/08/networking.png?w=425" alt="networking"   /> </strong></p>
<blockquote><p>En criptografía, se denomina una infraestructura de clave pública a una combinación de hardware, software y procedimientos de seguridad que permiten la ejecución con garantías de operaciones criptográficas como el cifrado, la firma digital o el no rechazo de transacciones electrónicas. Para un correcto funcionamiento es necesario que intervengan las siguientes partes:</p>
<ul>
<li>Un usuario iniciador de la operación.</li>
<li>Sistemas servidores que dan ocurrencia de la operación y garantizan la validez de los certificados implicados en la operación.</li>
<li>Un destinatario de los datos cifrados/firmados/enviados garantizados por parte del usuario iniciador de la operación.</li>
</ul>
</blockquote>
<h2>¿Qué objetivo nos marcamos?</h2>
<p>El propósito de usar la autentificación mediante claves públicas es sacar el mayor partido posible a SSH mediante el uso de clave privada y pública.  De forma que al compartir esta última con el servidor, podamos <strong>identificarnos automáticamente</strong>, sin necesidad de utilizar el esquema clásico de usuario y contraseña, al que estamos acostumbrados.</p>
<h2>¿Qué algoritmos de cifrado usar?</h2>
<p>SSH permite usar los algoritmos RSA y DSA, pero… ¿cuál de ellos nos conviene más?</p>
<ul>
<li><strong>RSA </strong>– Es un algoritmo asimétrico cifrador de bloques, que utiliza una clave pública, la cual se distribuye y otra privada, guardada en secreto por su propietario.Su funcionamiento reside en el <strong>uso de expresiones exponenciales</strong> dentro de la aritmética modular. Obteniendo una completa seguridad, debido a que aún no se conocen formas óptimas de factorizar  un número grande en sus factores primos utilizando ordenadores personales.El RSA se basa en dos problemas matemáticos: el problema de factorizar números grandes y el problema RSA. <strong>El descifrado completo de un texto cifrado con RSA es computacionalmente intratable</strong>.<br />
Por otro lado la factorización de números grandes proponen métodos para longitudes de 600-700 bits de longitud. Y generalmente, las claves RSA usan entre 1024-2048 bits.</li>
<li><strong>DSA</strong> – (<em>Digital Signature Algorithm o Algoritmo Estándar de Firmado</em>) es el algoritmo de firmado digital incluido en el DSS (Digital Signature Standard o Estándar de Firmas Digitales) del NIST Norteamericano.<strong> Está basado en el problema de los logaritmos discretos</strong> y únicamente puede emplearse para las firmas digitales. A diferencia del RSA, que puede emplearse también para encriptar.La elección de este algoritmo como estándar de firmado generó multitud de críticas puesto que perdía bastante flexibilidad respecto al RSA.</li>
</ul>
<p>La diferencia entre ambos reside en los tiempos obtenidos para la generación, firmado y comprobación de las claves públicas. Usando<a href="http://dev.neuclear.org/commons/xref-test/org/neuclear/commons/crypto/SigningBenchmark.html"> este benchmark</a> (<em>podéis usar cualquier IDE con la última versión del JDK</em>) se obtuvieron los siguientes tiempos:</p>
<table border="1" cellpadding="0">
<tbody>
<tr>
<td>
<p align="center"><strong>Algoritmo</strong></p>
</td>
<td>
<p align="center"><strong>Generación de llaves * 1(ms.)</strong></p>
</td>
<td>
<p align="center"><strong>Firmado * 100 (ms.)</strong></p>
</td>
<td>
<p align="center"><strong>Verificación*100(ms.)</strong></p>
</td>
</tr>
<tr>
<td>RSA 512</td>
<td>544.61</td>
<td>915</td>
<td>160</td>
</tr>
<tr>
<td>RSA 1024</td>
<td>1120.46</td>
<td>4188</td>
<td>263</td>
</tr>
<tr>
<td>DSA 512</td>
<td>6.62</td>
<td>634</td>
<td>988</td>
</tr>
<tr>
<td>DSA 1024</td>
<td>17.87</td>
<td>1775</td>
<td>3397</td>
</tr>
</tbody>
</table>
<p>El <strong>a</strong><strong>lgoritmo DSA es más rápido para generar la firma que para verificarla</strong>, al contrario de lo que sucede con RSA. Por lo que para realizar la autentificación en nuestro servidor SSH usaremos este último.</p>
<p>Además, si comparamos el tamaño de las llaves generadas por ambos algoritmos, comprobaremos cómo <strong>las utilizadas por RSA son superiores a las de DSA</strong>.</p>
<p>Dicho esto, usaremos RSA.</p>
<h2>Configuración del servidor</h2>
<p>Comprobamos si el equipo donde tenemos instalado sshd tiene activada la versión 2 del protocolo SSH y que esté habilitada la opción para utilizar claves RSA. Para ello buscamos las siguientes directivas en el fichero <strong>/etc/ssh/sshd_config</strong>:</p>
<p><code>Protocol 2<br />
RSAAuthentication yes<br />
AuthorizedKeysFile .ssh/authorized_keys</code></p>
<p>Para cada usuario que vaya a conectarse, debe existir el directorio <strong>/home/usuario/.ssh</strong> y en él el archivo <strong>authorized_keys</strong>. En caso de no ser así deberemos crearlo de forma manual y posteriormente iniciar el servidor.</p>
<p><code>cd ~<br />
mkdir .ssh<br />
touch .ssh/authorized_keys<br />
sudo /etc/init.d/sshd start<br />
</code></p>
<h2>Generación de los pares de claves RSA</h2>
<p>Como antes comentamos, SSH nos permite generar indistintamente claves RSA o DSA (<em>en nuestro caso usaremos la mencionada en primer lugar</em>), creándose para ambas una clave pública y una clave privada.</p>
<p>Dichas claves, pueden generarse en el propio servidor, en el ordenador cliente, o en cualquier otra máquina.</p>
<p>Al final <strong>sólo la clave pública debe aparecer en el fichero .ssh/authorized_keys</strong> del servidor al que queremos conectarnos.</p>
<p>El usuario interesado en generar el par de claves usará <strong>ssh-keygen</strong>. En el proceso, se nos pedirá introducir un passphrase, lo que viene a ser una contraseña para poder generar unas claves más fuertes y seguras.</p>
<p>En nuestro caso, vamos a usarla y a explicar posteriormente como indicarle al sistema que sólo nos la pida una vez por sesión, y no cada vez que nos autentifiquemos en el sistema.</p>
<p><code>$ ssh-keygen -t rsa<br />
Generating public/private rsa key pair.<br />
Enter file in which to save the key (/home/sebas/.ssh/id_rsa):<br />
Enter passphrase (empty for no passphrase):<br />
Enter same passphrase again:<br />
Your identification has been saved in /home/sebas/.ssh/id_rsa.<br />
Your public key has been saved in /home/sebas/.ssh/id_rsa.pub.<br />
The key fingerprint is:<br />
63:de:92:6d:00:fa:d9:17:55:45:ce:bc:25:42:8b:4c sebas@TheWorkstation<br />
The key's randomart image is:<br />
+--[ RSA 2048]----+<br />
|          E . .oo|<br />
|         o o o + |<br />
|      .   o + . =|<br />
|     . .   . . .o|<br />
|    .   S .    . |<br />
|     . = * .     |<br />
|      o = =      |<br />
|         +       |<br />
|                 |<br />
+-----------------+<br />
</code></p>
<p>El anagrama que produce esta versión de ssh-keygen, se denomina <strong>randomart </strong>y se trata de una representación visual de la huella</p>
<p><img class="alignright size-full wp-image-39" title="Notebookcheck- AMD ATI Mobility Radeon HD 4570_1245224146636" src="http://linuxcode.files.wordpress.com/2009/08/notebookcheck-amd-ati-mobility-radeon-hd-4570_1245224146636.png?w=425" alt="Notebookcheck- AMD ATI Mobility Radeon HD 4570_1245224146636"   /></p>
<p>digital de nuestra clave, para que sea más legible para el ojo humano y para dispositivos ópticos.</p>
<p>Si lo deseas, puedes usar la herramienta <a href="http://www.tastyrabbit.net/visprint/">visprint </a>que a través de técnicas de fractales, te permitirá obtener otro tipo de randomart.</p>
<h2>Instalación de clave pública y protección de la clave privada</h2>
<p>Para validar todo este proceso es necesario colocar nuestra clave pública en el servidor donde tenemos pensado autentificarnos.</p>
<p>Existen varias posibilidades de hacerlo, una de ellas es por ejemplo hacer uso del siguiente comando (<strong>Cliente</strong>):</p>
<p><code>[usuario1@localhost usuario1]$ ssh usuario @host_remoto \'cat &gt;&gt; .ssh/authorized_keys' &lt; .ssh/id_dsa.pub</code></p>
<p>Con este comando añadimos directamente la clave al fichero authorized_keys del servidor remoto de forma automática, ahorrándonos así un poco de trabajo.</p>
<p>También podemos usar (<strong>Cliente</strong>):</p>
<p><code>$ ssh-copy-id usuario_remoto@host_remoto</code></p>
<p>Pero ya que estamos haciendo todo con paso firme y decidido, continuemos haciendo las cosas con buen pie. Así que vamos a usar el comando scp, que trae incluido OpenSSH para hacer una transacción de ficheros entre el cliente y el servidor remoto de la forma más segura posible. Así que usaremos la siguiente orden (<strong>Cliente</strong>)</p>
<p><code>$ cd ~/.ssh<br />
$ scp id_rsa.pub usuario@host_remoto/</code></p>
<blockquote><p>Recuerda que la clave pública debe ser incluída en el fichero <strong>~/.ssh/authorized_keys</strong> de cada máquina donde queramos usar dicha autentificación.</p></blockquote>
<p>Ahora que ya tenemos la clave pública en el servidor, falta añadirla al fichero authorized_keys de éste (<em>algo que comentamos anteriormente que se podría conseguir de forma directa utilizando el primer comando</em>) (<strong>Servidor</strong>).</p>
<p><code>$ cd ~/.ssh<br />
$ cat id_rsa.pub &gt;&gt; authorized_keys<br />
$ shred -v  --remove id_rsa.pub</code></p>
<h2>Conclusión</h2>
<p>Si has realizado correctamente todos los pasos que se han ido indicando, ahora podrás conectarte a tu servidor SSH (Si no tienes uno, visita ésta entrada donde te explicamos cómo montar uno) sin necesidad de identificarte, tan sólo haciendo uso de las claves RSA que has generado.</p>
<p>También puedes incrementar un poco la seguridad modificando las siguientes directivas de tu fichero de configuración <strong>sshd_config</strong>:</p>
<p><code>PasswordAuthentication no<br />
PermitRootLogin no</code></p>
<p>Con las que impedirás la conexión como administrador y la autentificación mediante password para los usuarios.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxcode.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxcode.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/linuxcode.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/linuxcode.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/linuxcode.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/linuxcode.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/linuxcode.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/linuxcode.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/linuxcode.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/linuxcode.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/linuxcode.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/linuxcode.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/linuxcode.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/linuxcode.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxcode.wordpress.com&amp;blog=8820632&amp;post=24&amp;subd=linuxcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxcode.wordpress.com/2009/08/08/autentificacion-mediante-claves-publicas-en-ssh/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/605eecf3f3c3ee710b222f182624bd89?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">illbnet</media:title>
		</media:content>

		<media:content url="http://linuxcode.files.wordpress.com/2009/08/networking.png" medium="image">
			<media:title type="html">networking</media:title>
		</media:content>

		<media:content url="http://linuxcode.files.wordpress.com/2009/08/notebookcheck-amd-ati-mobility-radeon-hd-4570_1245224146636.png" medium="image">
			<media:title type="html">Notebookcheck- AMD ATI Mobility Radeon HD 4570_1245224146636</media:title>
		</media:content>
	</item>
		<item>
		<title>Iniciación a SSH</title>
		<link>http://linuxcode.wordpress.com/2009/08/05/iniciacion-a-ssh/</link>
		<comments>http://linuxcode.wordpress.com/2009/08/05/iniciacion-a-ssh/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 14:34:32 +0000</pubDate>
		<dc:creator>illbnet</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://linuxcode.wordpress.com/?p=7</guid>
		<description><![CDATA[¿Qué es SSH?

Conocido como Secure Shell (Intérprete Seguro de Órdenes) es el protocolo usado por excelencia para establecer conexión con máquinas remotas a través de una red.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxcode.wordpress.com&amp;blog=8820632&amp;post=7&amp;subd=linuxcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>¿Qué es SSH?<img class="alignright size-full wp-image-12" title="icono-ventanas" src="http://linuxcode.files.wordpress.com/2009/08/ico-ventanas.jpg?w=425" alt="icono-ventanas"   /></h2>
<p>Conocido como<strong> Secure Shell </strong>(<em>Intérprete Seguro de Órdenes</em>) es el protocolo usado por excelencia para establecer conexión con máquinas remotas a través de una red.<br />
Ampliamente extendido entre los usuarios, se caracteriza por permitir un control completo del ordenador servidor a través de un intérprete de órdenes o a través de <a href="http://es.wikipedia.org/wiki/Protocolo_del_sistema_de_ventanas_X">X</a> para ejecutar aplicaciones gráficas en caso de disponer de un servidor corriendo.</p>
<h2>¿Por qué SSH?</h2>
<p>SSH es un protocolo caracterizado por encriptar todas las conexiones que realiza, imposibilitando a terceros descifrar lo que se escribe durante la sesión, incluido el usuario y la contraseña.</p>
<p>Algo imposible con el protocolo FTP, donde la información viaja en texto plano.</p>
<p>Además, combinando los protocolos <a href="http://es.wikipedia.org/wiki/SCP">scp </a>(<em>Secure Copy</em>) y <a href="http://es.wikipedia.org/wiki/Secure_Shell_Filesystem">ssfhs </a>(<em>Secure Shell FileSystem</em>) con SSH conseguiremos una forma robusta e impenetrable de compartir ficheros e información entre equipos remotos.</p>
<h2>Conociendo a OpenSSH</h2>
<p>OpenSSH es un conjunto de aplicaciones que tiene como objetivo permitir comunicaciones cifradas a través de una red, usando para ello el protocolo SSH comentado anteriormente.</p>
<p>El proyecto está liderado por <a href="http://es.wikipedia.org/wiki/Theo_de_Raadt">Theo de Raadt </a>y es una alternativa libre a <a href="http://es.wikipedia.org/wiki/SSH">SSH</a>.</p>
<p>Las aplicaciones que vienen incluidas son:</p>
<ul>
<li><strong>ssh </strong>– Reemplaza a <a href="http://es.wikipedia.org/wiki/Rlogin">rlogin </a>y <a href="http://es.wikipedia.org/wiki/Telnet">telnet</a>.</li>
<li><strong>scp</strong> – Reemplaza a <a href="http://es.wikipedia.org/wiki/Rcp">rcp</a>.</li>
<li><strong>sftp</strong> – Reemplaza a ftp para copiar ficheros entre dos computadoras.</li>
<li><strong>sshd</strong> – Servidor demonio SSH.</li>
<li><strong>ssh-keygen</strong> – Herramienta usada para generar claves <a href="http://es.wikipedia.org/wiki/RSA">RSA </a>y <a href="http://es.wikipedia.org/wiki/DSA">DSA </a>usadas para mejorar la seguridad y autentificar al usuario que establece la conexión.</li>
<li><strong>ssh-agent</strong> | <strong>ssh-add</strong> -  Herramienta para autentificar de forma más sencilla, sin necesidad de estar continuamente el passhrase usado como clave.</li>
<li><strong>ssh-keyscan</strong> – Escanea una lista de clientes y recoge sus claves públicas.</li>
</ul>
<h2><strong>Clientes SSH</strong></h2>
<p>Si decides no usar OpenSSH desde Linux, siempre puedes usar alguna de estas aplicaciones libres:</p>
<ul>
<li><strong>OSSH</strong> – A diferencia de OpenSSH que añade el protocolo SSH2 y extiende el soporte de SSH1. OSSH únicamente implementa SSH1.</li>
<li><strong>LSH/psst</strong> – Implementación libre del protocolo SSH2, estandarizado actualmente por el grupo de trabajo IETF SECSH.</li>
<li><strong>Dropbear</strong> -  Pequeño servidor SSH2 y cliente. Que funciona bajo varias plataformas basadas en POSIX.</li>
</ul>
<p>Para Windows, puedes encontrar:</p>
<ul>
<li><strong>PuTTY</strong> – Implementación del protocolo SSH1+SSH2, posiblemente sea el cliente más extendido y usado entre los usuarios.</li>
<li><strong>WinSCP</strong> – GUI basada en sftp y scp. El núcleo que sustenta su protocolo SSH está basado en PuTTY.</li>
<li><strong>FileZilla </strong>– Potente cliente FTP. Diseñado pensando en la usabilidad y facilidad.</li>
</ul>
<p>No obstante para este tutorial y los venideros, se usará OpenSSH (<em>Linux</em>)/PuTTY (<em>Windows</em>).</p>
<h2><strong>Instalación de OpenSSH</strong></h2>
<p>Algunas distribuciones traen instalado por defecto un cliente SSH, no obstante explicaremos como realizarla para un sistema Ubuntu.</p>
<p><strong>Instalando a través de terminal</strong></p>
<ul>
<li>Para instalar el cliente:        <code> sudo apt-get install openssh-client</code></li>
<li>Para instalar el servidor:       <code>sudo apt-get install openssh-server</code></li>
</ul>
<h2>Primeros pasos con SSH</h2>
<ul>
<li>Para iniciar el servidor SSH:              <code>service ssh start</code></li>
<li>Para parar el servidor SSH:               <code>service ssh stop</code></li>
<li>Para reiniciar el servidor SSH:          <code>service ssh restart</code></li>
</ul>
<h2><strong>Conectándonos a un servidor remoto (Linux) desde un cliente (Linux)</strong></h2>
<p>Primero descubramos qué dirección IP tenemos en el servidor. Para ello desde una ventana de terminal escribimos:</p>
<p><code>/sbin/ifconfig</code></p>
<p>Nos aseguramos de que el servicio esté ejecutándose:</p>
<p><code>service ssh start</code></p>
<p>Y ahora podemos dirigirnos a nuestro cliente y establecer una conexión remota al equipo que ejerce de servidor. Basta con escribir la siguiente orden en la terminal:</p>
<p><code>ssh usuario_remoto@host_remoto</code></p>
<p>Dónde:</p>
<ul>
<li><strong>usuario_remoto</strong> – Será el nombre de usuario con el que queremos iniciar sesión. Debes tener en cuenta que si no está registrado en el equipo, no podrás iniciar sesión con él.</li>
<li><strong>host_remoto</strong> – Es la dirección del equipo que ejerce como servidor. Ahí es donde pondremos la dirección IP que hemos obtenido antes.</li>
</ul>
<p>La primera vez que establezcas conexión el sistema nos pedirá confirmación, bastará con decir “<strong>yes</strong>” y una vez introducida la contraseña correcta para el usuario solicitado, nos encontraremos identificados en el equipo remoto.</p>
<p>Los comandos, programas y scripts que lancemos tras conectarnos se ejecutarán en la máquina remota, utilizando los recursos de esta (<em>CPU, memoria, disco, etc&#8230;</em>).</p>
<p>Recuerda que podrás hacer todo aquello que se contemple bajo los permisos que posea el usuario con el que hayas iniciado sesión.</p>
<h2><strong>Establezcamos una conexión que nos permita ejecutar aplicaciones gráficas.</strong></h2>
<p>Ahora que hemos visto cómo conectarnos y trabajar desde nuestra ventana de terminal, vamos a ir un poco más allá, y vamos a ejecutar aplicaciones gráficas.</p>
<p>Un método bastante efectivo consiste en utilizar un túnel SSH para encapsular el protocolo X11, permitiendo transmitir la información de manera segura y sin crear conflictos con los cortafuegos.</p>
<p>Pero para ello debemos configurar un par de parámetros en el fichero <strong>sshd_config</strong>:</p>
<p><code>X11Forwarding    yes<br />
AllowTcpForwarding    yes</code></p>
<p>Con<strong> X11Forwarding</strong> especificamos si se permite el reenvío por X11. El valor por defecto es ‘yes’. Desactivarlo en ningún momento ayudará a mejorar la seguridad del servidor.</p>
<p>Y lo que intentamos conseguir activando dicha directiva es permitir ejecutar aplicaciones gráficas en el servidor remoto. Recordad que X es un sistema de ventanas creado para dotar de interfaz gráfica a los sistemas Unix.</p>
<p>Por otro lado con <strong>AllowTcpForwarding</strong> especificamos si se permite el reenvío a través del protocolo TCP. Al igual que pasaba con X11, desactivarlo, en ningún momento proveerá mayor seguridad a nuestro servidor. Su valor por defecto es ‘yes’.</p>
<p>Una vez hecho esto, ya podemos iniciar una sesión SSH y ejecutar aplicaciones gráficas. Para ello bastará con escribir en nuestra terminal:</p>
<p><code>ssh -X -Y usuario_remoto@host_remota</code></p>
<ul>
<li><strong>-X</strong> (<em>X11 forwarding</em>)</li>
<li><strong>-Y</strong> (<em>X11 trusted forwarding</em>)</li>
</ul>
<p>Ahora podremos ejecutar cualquier aplicación que se encuentre instalada en el servidor. Reproduzcamos una película con mplayer por ejemplo:</p>
<p><code>mplayer nombre_película</code></p>
<p>Recuerda que los recursos se tomarán del equipo donde te encuentres conectado.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxcode.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxcode.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/linuxcode.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/linuxcode.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/linuxcode.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/linuxcode.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/linuxcode.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/linuxcode.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/linuxcode.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/linuxcode.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/linuxcode.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/linuxcode.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/linuxcode.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/linuxcode.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxcode.wordpress.com&amp;blog=8820632&amp;post=7&amp;subd=linuxcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxcode.wordpress.com/2009/08/05/iniciacion-a-ssh/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/605eecf3f3c3ee710b222f182624bd89?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">illbnet</media:title>
		</media:content>

		<media:content url="http://linuxcode.files.wordpress.com/2009/08/ico-ventanas.jpg" medium="image">
			<media:title type="html">icono-ventanas</media:title>
		</media:content>
	</item>
	</channel>
</rss>
