Gentoo Archives: gentoo-commits

From: "John Christian Stoddart (chiguire)" <chiguire@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/doc/es/articles: openssh-key-management-p3.xml
Date: Sat, 11 Oct 2008 21:58:23
Message-Id: E1KomTd-00068b-Dl@stork.gentoo.org
1 chiguire 08/10/11 21:58:21
2
3 Added: openssh-key-management-p3.xml
4 Log:
5 new spanish translation (javier vecino)
6
7 Revision Changes Path
8 1.1 xml/htdocs/doc/es/articles/openssh-key-management-p3.xml
9
10 file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/es/articles/openssh-key-management-p3.xml?rev=1.1&view=markup
11 plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/es/articles/openssh-key-management-p3.xml?rev=1.1&content-type=text/plain
12
13 Index: openssh-key-management-p3.xml
14 ===================================================================
15 <?xml version = '1.0' encoding = 'UTF-8'?>
16 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/es/articles/openssh-key-management-p3.xml,v 1.1 2008/10/11 21:58:21 chiguire Exp $ -->
17 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
18
19 <guide link="/doc/es/articles/openssh-key-management-p3.xml" disclaimer="articles" lang="es">
20 <title>Gestión de claves para OpenSSH, Parte 3</title>
21 <author title="Autor">
22 <mail link="drobbins@g.o">Daniel Robbins</mail>
23 </author>
24 <author title="Traductor">
25 <mail link="coghan@×××××××××××.cc">Javier Vecino</mail>
26 </author>
27
28 <abstract>
29 En este tercer artículo de la serie, Daniel Robbins muesta como
30 mejorar las conexiones del agente OpenSSH. Así como las recientes
31 mejoras en el guión de consola keychain.
32 </abstract>
33
34 <!-- La versión original de este artículo fue publicada por IBM
35 developerWorks y es propiedad de Westtech Information
36 Services. Este documento es una versión actualizada del artículo
37 original y contiene mejoras introducidas por el Equipo de
38 Documentación de Gentoo. -->
39
40 <version>1.2</version>
41 <date>2005-10-21</date>
42
43 <chapter>
44 <title>Agente intermedio y mejoras de keychain</title>
45 <section>
46 <body>
47
48 <p>
49 Muchos de nosotros usamos las excelencias de OpenSSH como sustituto
50 cifrado y seguro de los venerables comandos telnet y rsh. Una de las
51 características que más intrigan de OpenSSH es la habilidad para
52 validar usuarios usando los protocolos RSA y DSA, que se basan en un
53 par de claves numéricas complementarias. Uno de los principales
54 atractivos de la validación RSA y DSA es la promesa de ser capaz de
55 establecer conexiones a sistemas remotos sin suministrar una
56 contraseña. Para más antecedentes, vea las entregas anteriores de esta
57 serie sobre gestión de claves para OpenSSH, que cubren <uri
58 link="/doc/es/articles/openssh-key-management-p1.xml">validación
59 RSA/DSA</uri> (Parte 1) y ssh-agent y <uri
60 link="/doc/es/articles/openssh-key-management-p2.xml" >keychain</uri>
61 (Parte 2), respectivamente.
62 </p>
63
64 <p>
65 Desde la Parte 2 publicada en developWorks en Septiembre de 2001, y
66 más tarde referenciados en Slashdot y Freshmeat (vease <uri
67 link="#recursos">Recursos</uri> más adelante en este artículo los
68 enlaces a estos sitios), muchas personas han empezado a usar keychain,
69 y le han realizado algunos cambios, he recibido sobre unos 20 parches
70 de gran calidad de desarrolladores de todo el mundo. He incorporado
71 muchos de estos parches al código de keychain, que está ahora en la
72 versión 1.8 (vea <uri link="#recursos">Recursos</uri>). Envío mis más
73 sincero agradecimiento a todos aquellos que enviaron parches, informes
74 de errores, y notas de agradecimiento.
75 </p>
76 </body>
77 </section>
78
79 <section>
80 <title>Ajustando la seguridad de ssh</title>
81 <body>
82
83 <p>
84 En mi <uri
85 link="/doc/es/articles/openssh-key-management-p2.xml">último
86 artículo</uri>, he pasado algún tiempo comentando los beneficios de
87 seguridad y las ventajas del funcionamiento de ssh-agent. Pocos días
88 después de que el segundo artículo apareciera en developerWorks,
89 recibí un e-mail de Charles Karney de Sharnof Corporation, que
90 amablemente me informó de las nuevas habilidades del nuevo agente
91 intermedio de validación de OpenSSH, le echaremos un vistazo en
92 breve. Además, Charles hizo incapié que la ejecución de ssh-agent en
93 máquinas poco fiables es muy peligroso: si alguien logra acceso como
94 root en el sistema, entonces sus claves descifradas puedes ser
95 extraidas desde ssh-agent. Aunque la extracción de las claves sería
96 algo difícil, está dentro de las habilidades de los crackers
97 profesionales. Y ante mero hecho de que el robo de la clave privada
98 sea medianamente posible deberemos tomar medidas en primer lugar para
99 evitar que suceda.
100 </p>
101
102 <p>
103 Para formular una estrategia para proteger nuestras claves privadas,
104 debemos primero poner las máquinas a las que accedemos dentro de una
105 de dos categorías. Si un host particular está bien asegurado o
106 aislado -- siendo poco probable el acceso con éxito del root por medio
107 de una vulnerabilidad -- entonces la máquina debe ser considerada un
108 host de confianza. Sin embargo, si una máquina es usada por muchas
109 personas o si tiene alguna duda acerca de la seguridad del sistema,
110 entonces la máquina debería ser considerada como un host no
111 confiable. De esta manera, incluso si la seguridad del sistema se ve
112 comprometida, en primer lugar no habrá un ssh-agent a mano del intruso
113 para extraer las claves.
114 </p>
115
116 <p>
117 Sin embargo, esto crea un problema, si no se puede ejecutar ssh-agent
118 en hosts no confiables, entonces ¿como podemos establecer conexiónes
119 ssh, sin contraseñas y seguras en estos sistemas? La respuesta es usar
120 solamente ssh-agent y keychain en hosts confiables, y usar la nueva
121 capacidad de OpenSSH de validación intermedia para extender la
122 validación sin contraseña en los hosts inseguros. En pocas palabras,
123 el trabajo de la validación intermedia es permitir a las sesiones ssh
124 remotas contactar con un ssh-agent que esté ejecutándose en un sistema
125 confiable.
126 </p>
127 </body>
128 </section>
129
130 <section>
131 <title>Agente de vaiidación intermedia</title>
132 <body>
133
134 <p>
135 Para tener una idea de cómo funciona la validación intermedia, primero
136 deje que veamos una hipotética situación donde el usuario drobbins
137 tiene un ordenador portátil llamado lappy, un servidor de confianza
138 llamado trustbox, y otros dos sistemas inseguros a los que debe tener
139 acceso, llamados notrust1 y notrust2, respectivamente. Actualmente,
140 utiliza ssh-agent junto con keychain en las cuatro máquinas, de la
141 siguiente manera:
142 </p>
143
144 <figure link="/images/docs/l-ssh-3.jpg" caption="ssh-agent ejecutandose en
145 máquinas confiables y no confiables"/>
146
147 <p>
148 El problema con este enfoque es que si alguien consigue acceso de root
149 en notrust1 o notrust2, entonces, por supuesto, es posible que estas
150 personas extraigan las claves desde el ahora vulnerable proceso
151 ssh-agent. Para solucionar este problema, drobbins para la ejecución
152 de ssh-agent y keychain en los inseguros hosts notrust1 y notrust2. De
153 hecho, es incluso más cuidadoso, drobbins decide usar solamente
154 ssh-agent y keychain en lappy. Esto limita la exposición de sus claves
155 privadas descifradas, protegiéndolas contra el robo.
156 </p>
157
158 <figure link="/images/docs/l-ssh-4.jpg" caption="ssh-agent ejecutándose
159 solamente en lappy; una configuración muy segura"/>
160
161 <p>
162 Por supuesto, el problema con este enfoque es que drobbins solamente
163 puede establecer conexiones sin contraseña desde lappy. Veamos como
164 habilitar la validacion intermedia y solucionar este problema.
165 </p>
166
167 <p>
168 Suponiendo que todas las máquinas están ejecutando la versión más
169 reciente de OpenSSH, podemos solucionar este problema mediante el uso
170 de la validación intermedia. la validación intermedia permite a los
171 procesos ssh remotos contactar con el ssh-agent que esté en ejecución
172 en su máquina local segura -- en lugar de requerir que una versión de
173 ssh-agent sea ejecutada en la misma máquina desde la que salga por
174 ssh. Esto por lo general le permite ejecutar ssh-agent (y keychain) en
175 una sola máquina, y significa que todas las conexiones ssh que
176 procedan (ya sea directa o indirectamente) desde esta máquina van a
177 utilizar su ssh-agent local.
178 </p>
179
180 <p>
181 Para habilitar la validación intermedia, añadimos la siguiente línea
182 en <path>/etc/ssh/ssh_config</path> de lappy y trustbox. Tenga en
183 cuenta que este es el archivo de configuración de ssh
184 (<path>ssh_config</path>), no del servicio sshd
185 (<path>sshd_config</path>):
186 </p>
187
188 <pre caption="Añada esta línea a su /etc/ssh/ssh_config">
189 ForwardAgent Yes
190 </pre>
191
192 <p>
193 Ahora, para sacar ventaja de la validación intermedia, drobbins se
194 puede conectar desde lappy a trustbox, y a continuación desde trustbox
195 hacia notrust1 sin suministrar contraseña desde ninguna
196 conexión. Ambos procesos ssh "llaman" a ssh-agent ejecutado en lappy:
197 </p>
198
199 <pre caption="Aprovechando lappy">
200 $ <i>ssh drobbins@trustbox</i>
201 Last login: Wed Sep 26 13:42:08 2001 from lappy
202
203 Welcome to trustbox!
204 $ <i>ssh drobbins@notrust1</i>
205 Last login: Tue Sep 25 12:03:40 2001 from trustbox
206
207 Welcome to notrust1!
208 $
209 </pre>
210
211 <p>
212 Si intenta una configuración similar y se da cuenta que la transmisión
213 no funciona, pruebe utilizando <c>ssh -A</c> en lugar del anterior ssh
214 a secas para habilitar explícitamente la validación intermedia. Aquí
215 hay un driagrama sobre lo que sucede detrás del escenario cuando
216 accedemos a trustbox y notrust1 usando la validación intermedia:
217 </p>
218
219 <figure link="/images/docs/l-ssh-5.jpg" caption="Agente intemedio en acción"/>
220
221 <p>
222 Como puede ver, cuando ssh conecta a trustbox, mantuiene una conexión
223 con el ssh-agent ejecutado en lappy. Cuando una conexión ssh se
224 realiza desde trustbox hacia notrust1, este nuevo proceso ssh mantenie
225 la conexión validada por el anterior ssh, extendiendo la cadena de
226 manera efectiva. Si esta cadena de validacion puede ser extendida más
227 allá de notrust1 a otros hosts depende de como
228 <path>/etc/ssh/ssh_config</path> en notrust1 esté configurado. Mientas
229 el agente intermedio este habilitado, todas las partes de la cadena
230 serán capaces de validarse usando el ssh-agent ejecutado en el seguro
231 lappy,
232 </p>
233 </body>
234 </section>
235
236 <section>
237 <title>Ventajas del agente de conexión intermedia</title>
238 <body>
239
240 <p>
241 La validación intermedia ofrece una serie de ventajas de seguridad no
242 mostradas. Para convencerme de la importancia del agente de conexión
243 intermedia, Charles Karney ha compartido conmigo estas tres conceptos
244 de seguridad:
245 </p>
246
247 <ol>
248 <li>
249 La clave privada se guarda sólo en la máquina de confianza. Esto
250 evita que usuarios malintencionados recolecten su clave encriptada
251 desde el disco y traten de romper la encriptación.
252 </li>
253 <li>
254 ssh-agent sólo se ejecuta en la máquina de confianza. Esto evita
255 que un intruso reealice un volcado de memoria de un proceso
256 ssh-agent remoto y entonces extraiga su clave descifrada desde el
257 volcado.
258 </li>
259 <li>
260 Dado que sólo tendrá que teclear su contraseña desde su máquina de
261 confianza, evita cualquier furtivo logeador de pulsaciones del
262 teclado que pueda capturar su contraseña cuando es introducida.
263 </li>
264 </ol>
265
266 <p>
267 El incoveniente de confiar en el agente de validación intermedio es
268 que no resuelve el problema que permita a los cron jobs aprovechar la
269 validación RSA/DSA. Una solución a este problema es crear todos los
270 cron jobs que necesiten la validación RSA/DSA para que sean ejecutados
271 en una máquina de confianza de su LAN. Si es necesario, estos cron
272 jobs pueden utilizar ssh para conectarse a sistemas remotos para
273 automatizar copias de seguridad, sincronizar ficheros, y así
274 sucesivamente.
275 </p>
276
277 <p>
278 Ahora que hemos visto la conexión del agente de validación intermedia,
279 es el turno de las mejoras recientemente introducidas en el propio
280 guión keychain.
281 </p>
282 </body>
283 </section>
284
285 <section>
286 <title>Mejoras en el funcionamiento de keychain</title>
287 <body>
288
289 <p>
290 Gracias a los parches enviados por los usuarios, muchas mejoras
291 importantes se han introducido en el código fuente de keychain. Varios
292 de los parches enviados por usuarios fueron en relación a la
293 funcionalidad. Por ejemplo, recordará que keychain ha creado un
294 fichero <path>~/.ssh-agent</path>; el nombre de este fichero ha
295 cambiado a <path>~/.ssh-agent-[hostname]</path> de modo que keychain
296 puede trabajar con los directorios home montados por NFS para que se
297 puedan acceder desde varios hosts físicos. Además del fichero
298 <path>~/.ssh-agent-[hostname]</path>, ahora hay un fichero
299 <path>~/.ssh-agent-csh-[hostname]</path> que puede ser leído por
300 consolas csh y compatibles. Po último, una nueva opción
301 <c>--nocolor</c> ha sido añadida a fin de que la característica
302 coloración pueda ser desactivada en caso de que se utilice un terminal
303 no compatilble vt100.
304 </p>
305 </body>
306 </section>
307
308 <section>
309 <title>Correcciones de compatibilidas de la consola</title>
310 <body>
311
312 <p>
313 Si bien la funcionalidad de las mejoras han sido importantes, la gran
314 mayoría de las correciones se han ocupado de los problemas de
315 compatibilidad de la consola. Verá, mientras keychain 1.0 requiere de
316 bash, versiones posteriores fueron cambiadas para trabajar con
317 cualquier consola compatible con sh. Este cambio permite a keychain
318 trabajar "de forma poco común" en casi cualquier sistema UNIX,
319 incluyendo Linux, BSD, Solaris, IRIX, y AIX así como de otras
320 plataformas UNIX. Si bien la transición a sh y a la compatibilidad
321 general UNIX ha sido un camino lleno de baches, también ha sido una
322 tremenda experiencia de aprendizaje. La creación de un único guión
323 que funcione en todas estas plataformas ha sido muy difícil,
324 principalmanete por mi, ¡sencillamente no tengo acceso a la mayoría de
325 estos sistemas operativos!. Afortunadamente, lo hicieron los usuarios
326 de keychain de todo mundo, y muchos han proporcionado gran ayuda en la
327 identificación de problemas de compatibilidad y presentando parches
328 para solucionarlos.
329 </p>
330
331 <p>
332 Realmente hay dos tipos de problemas de compatibilidad que tenían que
333 ser solucionados. Primeramente, necesitaba asegurar que keychain,
334 integraba expresiones y operadores que estuvieran plenamente
335 soportados bajos todas las implementaciones de sh, incluyendo todas
336 las consolas sh populares libres y las comerciales UNIX, zsh (en modo
337 compatible sh), y las versiones 1 y 2 de bash. Estos son algunas de
338 las correciones de compatilibilidad de consola enviadas por los
339 usuarios que fueron aplicadas al código funete de keychain:
340 </p>
341
342 <p>
343 Dado que las antiguas consolas sh no soportan el convenio ~ para
344 referirse al directorio home del usuario, las líneas que usaban ~
345 fueron cambiadas para usar <c>$HOME</c> en su lugar:
346 </p>
347
348 <pre caption="cambiando a $HOME">
349 hostname=`uname -n`
350 pidf=${HOME}/.ssh-agent-${hostname}
351 cshpidf=${HOME}/.ssh-agent-csh-${hostname}
352 </pre>
353
354 <p>
355 A continuaciòn, todas las referencias al código fuente fueron
356 cambiadas por un . para asegurar la compatibilidad con la purista
357 /bin/sh de NetBSD, que no es compatible con el comando source:
358 </p>
359
360 <pre caption="Alegrando NetBSD">
361 if [ -f $pidf ]
362 then
363 . $pidf
364 else
365 SSH_AGENT_PID="NULL"
366 fi
367 </pre>
368
369 <p>
370 A lo largo del camino, también he ido aplicando algunos parches
371 relacionados con el rendimiento. Un experimentado programador de
372 guiones de consola me informó que en lugar de "crear" un fichero
373 tecleando touch foo, tu puedes hacer esto en su lugar:
374 </p>
375
376 <pre caption="Creando ficheros">
377 > <i>foo</i>
378 </pre>
379
380 <p>
381 Sobre la base de usar la sintaxis interna de la consola en lugar de un
382 binario externo, un fork() es evitado y el guión se convierte en algo
383 más eficiente. > foo debería trabajar con cualquier consola
384 compatible sh; sin embargo, no parece estar soportado por ash. Esto no
385 debería ser un problema para la mayoría de la gente, ya que ash es una
386 consola para un disco de recuperación en lugar de algo que la gente
387 use en el día a día básico.
388 </p>
389 </body>
390 </section>
391
392 <section>
393 <title>Preguntando a la plataforma por los ejecutables</title>
394 <body>
395
396 <p>
397 Obtener un guión que trabaje en múltiples sistemas operativos UNIX
398 requiere algo más que ceñirse a la sintaxix pura de sh. Recuerde que,
399 la mayoría de los guiones también hacen llamadas a comandos externos,
400 tales como grep, awk, ps, y otros, y estos comandos deben ser llamados
401 de una manera compatible en la medida de lo posible. Por ejemplo,
402 mientras el comando echo incluido en la mayoría de los UNIX reconoce
403 la opción <c>-e</c>, Solaris no -- simplemente imprime <c>-e</c> hacia
404 stdout cuando se utiliza. Por lo tanto ,con el fin de tratar con
405 Solaris, keychain ahora autodetecta si <c>echo -e</c> funciona:
406 </p>
407
408 <pre caption="Analizando la salida de Solaris">
409 if [ -z "`echo -e`" ]
410 then
411 E="-e"
412 fi
413 </pre>
414
415 <p>
416 Arriba, E se establece en <c>-e</c> si -e es soportada, entonces, echo
417 se puede llamar de la siguiente manera:
418 </p>
419
420 <pre caption="Mejorar echo">
421 echo $E Usage: ${CYAN}${0}${OFF} [ ${GREEN}options${OFF} ] ${CYAN}sshkey${OFF} ...
422 </pre>
423
424 <p>
425 Mediante el uso de <c>echo $E</c> en lugar de <c>echo -e</c>, la
426 opción -e puede ser dinámicamente activada o desactivada según sea
427 necesario.
428 </p>
429 </body>
430 </section>
431
432 <section>
433 <title>pidof, ps</title>
434 <body>
435
436 <p>
437 Probablemente, la más significativa revisión de compatibilidad ha
438 implicado cambios en como keychain detecta los actuales procesos
439 ssh-agent en ejecución. Anteriormente yo estaba usando el comando
440 pidof para hacerlo, pero he tenido que eliminarlo desde que varios
441 sistemas no tienen un pidof. Realmente, pidof no es la mejor solución
442 de todos modos, ya que lista todos los procesos ssh-agent ejecutándose
443 en el sistema, independientemente del usuario, cuando realmente
444 estamos interesados en todos los procesos ssh-agent propiedad del
445 actual UID.
446 </p>
447
448 <p>
449 Así que, en lugar de depender de pidof, pasamos sobre las tuberias de
450 la salida ps a grep y awk con el fin de extraer el proceso ids
451 necesario. Esto es un arreglo enviado por un usuario:
452 </p>
453
454 <pre caption="Tuberías mejor que pidof">
455 mypids=`ps uxw | grep ssh-agent | grep -v grep | awk '{print $2}'`
456 </pre>
457
458 <p>
459 La tubería establecerá la variable mypids a los valores de todos los
460 procesos ssh-agent propiedad del actual usuario. El comando grep -v
461 grep es parte de la tubería para garantizar que el procesos grep
462 ssh-agent no se convierta en parte de nuestra lista de PID.
463 </p>
464
465 <p>
466 Si bien este enfoque es un buen concepto, usando ps se abrió toda una
467 nueva lata de gusanos ya que las opciones de ps no están
468 estandarizadas a través de las diferentes BSD y System V derivados de
469 UNIX. He aquí un ejemplo: mientras ps uxw trabaja bajo Linux, no
470 funciona bajo IRIX. Y mientras <c>ps -u username -f</c> trabaja bajo
471 Linux, IRIX y Solaris, no funciona bajo BSD, que sólo entiende el
472 estilo BSD de opciones ps. Para evitar este problema, keychain
473 autodetecta si el ps del sistema actual trabaja con la sintaxis BSD o
474 System V antes de ejecutar la tubería ps:
475 </p>
476
477 <pre caption="Detectando BSD vs. System V">
478 psopts="FAIL"
479 ps uxw >/dev/null 2>&amp;1
480 if [ $? -eq 0 ]
481 then
482 psopts="uxw"
483 else
484 ps -u `whoami` -f >/dev/null 2>&amp;1
485 if [ $? -eq 0 ]
486 then
487 psopts="-u `whoami` -f"
488 fi
489 fi
490 if [ "$psopts" = "FAIL" ]
491 then
492 echo $0: unable to use \"ps\" to scan for ssh-agent processes.
493 Report KeyChain version and echo system configuration to drobbins@g.o.
494 exit 1
495 fi
496
497 mypids=`ps $psopts 2>/dev/null | grep "[s]sh-agent" | awk '{print $2}'` > /dev/null 2>&amp;1
498 </pre>
499
500 <p>
501 Para asegurar que el comando ps trabaja con ambos System V y estilo
502 BSD, el guión hace un "simulacro" de ps uxw, mostrando alguna salida,
503 si el código de error de este comando es igual a cero, sabemos que ps
504 uxw trabaja y ajustamos el valor psopts adecuadamente. Sin embargo, si
505 ps uxw devuelve un código de error distinto de cero (lo que indica que
506 tenemos que usar las opciones del estilo BSD), haremos una prueba de
507 <c>ps -u `whoami` -f</c>, nuevamente mostrando toda la salida. En este
508 punto, esperamos haber encontrado una variante BSD o System V de ps
509 que podamos usar. Si no, mostramos un error y salimos. Pero es muy
510 probable que uno de los dos comandos ps trabaje, en cuyo caso se
511 ejecutará la línea final del anterior fragmento de código, nuestra
512 tubería ps. Mediante el uso de la variable $psopts expandida
513 inmediatamente después de ps, estamos en condiciones de pasar las
514 opciones correctas al comando ps.
515 </p>
516
517 <p>
518 La tubería ps también contiene una verdadera joya grep, que me fue
519 amablemente enviada por Hans Peter Verne. Observe que <c>grep -v
520 grep</c> ya no es parte de la tubería; en su lugar, se ha eliminado y
521 <c>grep "ssh-agent"</c> ha sido cambiado por grep
522 <c>"[s]sh-agent"</c>. Este único comando grep termina haciendo lo
523 mismo que <c>grep ssh-agent | grep -v grep</c>; ¿se puede figurar por
524 qué?.
525 </p>
526
527 <pre caption="Ligero truco con grep">
528 mypids=`ps $psopts 2>/dev/null | grep "[s]sh-agent" | awk '{print $2}'` > /dev/null 2>&amp;1
529 </pre>
530
531 <p>
532 ¿Perplejo? Si ha decidido que un <c>grep "ssh-agent"</c> y <c>grep
533 "[s]sh-agent"</c> deberían coincidir con las mismas líneas de texto,
534 está en lo cierto. ¿Entonces porqué hacer que generen resultados
535 diferentes cuando la salida de ps es entubada hacia ellos? He aquí
536 como funciona: cuando se utiliza grep "[s]sh-agent", cambia la forma
537 en que el comando grep aparece en el listado de procesos ps. De esta
538 manera, prevenimos que grep coincida consigo mismo, ya que la cadena
539 [s]sh-agent no coincide con la expresión regular [s]sh-agent. ¿No es
540 brillante? Si todavía no lo pilla, juegue con grep un poco más y lo
541 logrará pronto.
542 </p>
543 </body>
544 </section>
545
546 <section>
547 <title>Conclusión</title>
548 <body>
549
550 <p>
551 Con este artículo concluye mi covertura de OpenSSH. Afortunadamente,
552 ha aprendido lo suficiente para empezar a utilizar OpenSSH para
553 asegurar sus sistemas. El próximo mes continuaré con la serie de
554 articulos con la "Guía avanzada de implementación de ficheros"
555 </p>
556 </body>
557 </section>
558 </chapter>
559
560 <chapter id="recursos">
561 <title>Recursos</title>
562 <section>
563 <body>
564
565 <ul>
566 <li>
567 Lea los otros dos artículos de Daniel de esta serie, <uri
568 link="/doc/es/articles/openssh-key-management-p1.xml">Gestión de
569 claves para OpenSSH, Parte 1</uri> y <uri
570 link="/doc/es/articles/openssh-key-management-p2.xml">Gestión de
571 claves para OpenSSH, Parte 2</uri>
572 </li>
573 <li>
574 La versión más reciente de keychain está disponible en la página
575 de<uri
576 link="http://www.gentoo.org/proj/en/keychain/index.xml">Gentoo
577 Linux Keychain</uri>
578 </li>
579 <li>
580 Asegúrese de visitar el<uri link="http://www.openssh.com/">sitio
581 de desarrollo de OpenSSH</uri>, y revise las<uri
582 link="http://www.openssh.com/faq.html" >FAQ de OpenSSH</uri>
583 </li>
584 <li>
585 <uri
586 link="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</uri>
587 es un excelente cliente ssh para máquinas Windows
588 </li>
589 <li>
590 El libro "SSH, The Secure Shell: The Definitive Guide" (O'Reilly
591 &amp; Associates, 2001) puede ayudarle. El <uri
592 link="http://www.snailbook.com/" >sitio de los autores</uri>
593 contiene información acerca del libro, FAQ, noticias, y
594 actualizaciones.
595 </li>
596 </ul>
597 </body>
598 </section>
599 </chapter>
600 </guide>