hgbook

diff es/collab.tex @ 428:35370f1551a7

finished ssh part translation
author Igor TAmara <igor@tamarapatino.org>
date Sat Nov 29 02:55:59 2008 -0500 (2008-11-29)
parents 4a1dc5e8e2ff
children e5c5918e8230
line diff
     1.1 --- a/es/collab.tex	Sun Nov 23 23:15:17 2008 -0500
     1.2 +++ b/es/collab.tex	Sat Nov 29 02:55:59 2008 -0500
     1.3 @@ -435,180 +435,187 @@
     1.4  la ventana en la cual se despliega directamente en el fichero
     1.5  \sfilename{authorized\_keys}.
     1.6  
     1.7 -\subsection{Using an authentication agent}
     1.8 -
     1.9 -An authentication agent is a daemon that stores passphrases in memory
    1.10 -(so it will forget passphrases if you log out and log back in again).
    1.11 -An ssh client will notice if it's running, and query it for a
    1.12 -passphrase.  If there's no authentication agent running, or the agent
    1.13 -doesn't store the necessary passphrase, you'll have to type your
    1.14 -passphrase every time Mercurial tries to communicate with a server on
    1.15 -your behalf (e.g.~whenever you pull or push changes).
    1.16 -
    1.17 -The downside of storing passphrases in an agent is that it's possible
    1.18 -for a well-prepared attacker to recover the plain text of your
    1.19 -passphrases, in some cases even if your system has been power-cycled.
    1.20 -You should make your own judgment as to whether this is an acceptable
    1.21 -risk.  It certainly saves a lot of repeated typing.
    1.22 -
    1.23 -On Unix-like systems, the agent is called \command{ssh-agent}, and
    1.24 -it's often run automatically for you when you log in.  You'll need to
    1.25 -use the \command{ssh-add} command to add passphrases to the agent's
    1.26 -store.  On Windows, if you're using PuTTY, the \command{pageant}
    1.27 -command acts as the agent.  It adds an icon to your system tray that
    1.28 -will let you manage stored passphrases.
    1.29 -
    1.30 -\subsection{Configuring the server side properly}
    1.31 -
    1.32 -Because ssh can be fiddly to set up if you're new to it, there's a
    1.33 -variety of things that can go wrong.  Add Mercurial on top, and
    1.34 -there's plenty more scope for head-scratching.  Most of these
    1.35 -potential problems occur on the server side, not the client side.  The
    1.36 -good news is that once you've gotten a configuration working, it will
    1.37 -usually continue to work indefinitely.
    1.38 -
    1.39 -Before you try using Mercurial to talk to an ssh server, it's best to
    1.40 -make sure that you can use the normal \command{ssh} or \command{putty}
    1.41 -command to talk to the server first.  If you run into problems with
    1.42 -using these commands directly, Mercurial surely won't work.  Worse, it
    1.43 -will obscure the underlying problem.  Any time you want to debug
    1.44 -ssh-related Mercurial problems, you should drop back to making sure
    1.45 -that plain ssh client commands work first, \emph{before} you worry
    1.46 -about whether there's a problem with Mercurial.
    1.47 -
    1.48 -The first thing to be sure of on the server side is that you can
    1.49 -actually log in from another machine at all.  If you can't use
    1.50 -\command{ssh} or \command{putty} to log in, the error message you get
    1.51 -may give you a few hints as to what's wrong.  The most common problems
    1.52 -are as follows.
    1.53 +\subsection{Uso de un agente de autenticación}
    1.54 +
    1.55 +Un agente de autentitcación es un daemonio que almacena frases clave en
    1.56 +memoria(olvidará las frases clave si sale y vuelve a entrar).  Un cliente
    1.57 +ssh notará si está corriendo, y solicitará una frase clave.  Si no hay
    1.58 +un agente de autenticación corriendo, o el agente no almacena la frase
    1.59 +clave necesaria, tendrá que teclear su frase clave cada vez que 
    1.60 +Mercurial intente comunicarse con un servidor para usted(p.e.~cada vez
    1.61 +que jale o publique cambios).
    1.62 +
    1.63 +El problema de almacenar frases claves en un agente es que es posible
    1.64 +para un atacante bien preparado recuperar el texto plano de su frase
    1.65 +clave, en alguntos casos incluso si su sistema sea muy alternante.
    1.66 +Es su decisión si es un riesgo aceptable.  Lo que si es seguro es que
    1.67 +evita reteclear.
    1.68 +
    1.69 +En sistemas tipo Unix, el agente se llama \command{ssh-agent}, y
    1.70 +usualmente se ejecuta automáticamente cuando usted entra.  Tendrá que
    1.71 +usar la orden \command{ssh-add} para añadir frases claves al agente.  En
    1.72 +Windows, si está usando PuTTY, la orden \command{pageant} actúa como
    1.73 +el agente.  Añade un ícono a su barra del sistema que le permitirá
    1.74 +almacenar frases clave.
    1.75 +
    1.76 +\subsection{Configurar el lado del servidor apropiadamente}
    1.77 +
    1.78 +Dado que puede ser dispendioso configurar ssh si usted es nuevo, hay 
    1.79 +una variedad de cosas que podrían ir mal.  Añada piense primero en
    1.80 +Mercurial y hay mucho más en qué pensar.  La mayor parte de estos
    1.81 +problemas potenciales occuren en el lado del servidor, no en el cliente.
    1.82 +Las buenas noticias es que una vez tiene una configuración funcional,
    1.83 +usualmente continuará trabajando indefinidamente.
    1.84 +
    1.85 +Antes de intentar que Mercurial hable con un servidor ssh, es mejor
    1.86 +asegurarse que puede usar la orden normal \command{ssh} o \command{putty}
    1.87 +para comunicarse con el servidor primero.  Si tiene problemas usando
    1.88 +estas órdenes directamente, de seguro Mercurial no funcionará.  Pero aún,
    1.89 +esconderá el problema subyacente.  Cuando desee revisar un problema
    1.90 +relacionado con ssh y Mercurial, debería asegurarse primero que las
    1.91 +órdenes de ssh en el lado del cliente funcionan primero, \emph{antes}
    1.92 +de preocuparse por si existe un problema con Mercurial.
    1.93 +
    1.94 +Lo primero para asegurar en el lado del servidor es que puede entrar
    1.95 +desde otra máquina.  Si no puede entrar con \command{ssh} o 
    1.96 +\command{putty}, el mensaje de error que obtenga le puede dar pistas
    1.97 +de qué ha ido mal.  Los problemas más comunes son los siguientes:
    1.98  \begin{itemize}
    1.99 -\item If you get a ``connection refused'' error, either there isn't an
   1.100 -  SSH daemon running on the server at all, or it's inaccessible due to
   1.101 -  firewall configuration.
   1.102 -\item If you get a ``no route to host'' error, you either have an
   1.103 -  incorrect address for the server or a seriously locked down firewall
   1.104 -  that won't admit its existence at all.
   1.105 -\item If you get a ``permission denied'' error, you may have mistyped
   1.106 -  the username on the server, or you could have mistyped your key's
   1.107 -  passphrase or the remote user's password.
   1.108 +\item Si obitene un error de ``conexión rehusada'', es posible que no 
   1.109 +  haya un daemonio SSH corriendo en el servidor o que no pueda accederse
   1.110 +  a él por configuraciones de cortafuegos.
   1.111 +\item Si obtiene un error de ``no hay ruta hasta el servidor'', puede
   1.112 +  tener la dirección del servidor incorrecta o un cortafuegos con
   1.113 +  bloqueo agresivo que no permitirá su existencia.
   1.114 +\item Si obtiene un mensaje de ``permiso denegado'', puede que haya
   1.115 +  tecleado mal el usuario en el servidor, o que haya tecleado
   1.116 +  incorrectamente la frase clave o la clave del usuario remoto.
   1.117  \end{itemize}
   1.118 -In summary, if you're having trouble talking to the server's ssh
   1.119 -daemon, first make sure that one is running at all.  On many systems
   1.120 -it will be installed, but disabled, by default.  Once you're done with
   1.121 -this step, you should then check that the server's firewall is
   1.122 -configured to allow incoming connections on the port the ssh daemon is
   1.123 -listening on (usually~22).  Don't worry about more exotic
   1.124 -possibilities for misconfiguration until you've checked these two
   1.125 -first.
   1.126 -
   1.127 -If you're using an authentication agent on the client side to store
   1.128 -passphrases for your keys, you ought to be able to log into the server
   1.129 -without being prompted for a passphrase or a password.  If you're
   1.130 -prompted for a passphrase, there are a few possible culprits.
   1.131 +En resumen, si tiene problemas al comunicarse con el daemonio ssh del
   1.132 +servidor, primero asegúrese de que está corriendo.  En muchos sistemas
   1.133 +estará instalado, pero deshabilitado de forma predeterminada.  Una vez
   1.134 +que haya hecho este paso tendrá que revisar si el cortafuegos del
   1.135 +servidor está configurado para recibir conexiones entrantes en el
   1.136 +puerto en el cual el daemonio de ssh está escuchando(usualmente el~22).
   1.137 +No trate de buscar otras posibilidades exóticas o configuraciones
   1.138 +erradas haste que haya revisado primero estas dos.
   1.139 +
   1.140 +Si está usando un agente de autenticación en el lado del cliente para
   1.141 +almacenar las frase claves de sus contraseñas, debería poder entrar al
   1.142 +servidor sin necesidad de que se le solicite frases claves o
   1.143 +contraseñas.  Si se le pregunta alguna, a continuación algunas
   1.144 +posibilidades:
   1.145  \begin{itemize}
   1.146 -\item You might have forgotten to use \command{ssh-add} or
   1.147 -  \command{pageant} to store the passphrase.
   1.148 -\item You might have stored the passphrase for the wrong key.
   1.149 +\item Puede haber olvidado usar \command{ssh-add} o
   1.150 +  \command{pageant} para guardar la frase clave.
   1.151 +\item Puede haber almacenado una frase clave errónea para la llave.
   1.152  \end{itemize}
   1.153 -If you're being prompted for the remote user's password, there are
   1.154 -another few possible problems to check.
   1.155 +Si se le solicita la clave del usuario remoto, hay otras posibilidades
   1.156 +que deben revisarse:
   1.157  \begin{itemize}
   1.158 -\item Either the user's home directory or their \sdirname{.ssh}
   1.159 -  directory might have excessively liberal permissions.  As a result,
   1.160 -  the ssh daemon will not trust or read their
   1.161 -  \sfilename{authorized\_keys} file.  For example, a group-writable
   1.162 -  home or \sdirname{.ssh} directory will often cause this symptom.
   1.163 -\item The user's \sfilename{authorized\_keys} file may have a problem.
   1.164 -  If anyone other than the user owns or can write to that file, the
   1.165 -  ssh daemon will not trust or read it.
   1.166 +\item O bien el directorio del usuario o su directorio \sdirname{.ssh}
   1.167 +  tiene permisos excesivamente abiertos.  Como resultado el daemonio
   1.168 +  ssh no creerá o leerá su fichero \sfilename{authorized\_keys}.  
   1.169 +  Por ejemplo, un directorio casa o \sdirname{.ssh} causará aveces
   1.170 +  este síntoma.
   1.171 +\item El fichero de usuario \sfilename{authorized\_keys} puede tener
   1.172 +  un problema.  Si alguien distinto al usuario es dueño o puede
   1.173 +  escribir el archivo, el daemonio ssh no confiará o lo leerá.
   1.174  \end{itemize}
   1.175  
   1.176 -In the ideal world, you should be able to run the following command
   1.177 -successfully, and it should print exactly one line of output, the
   1.178 -current date and time.
   1.179 -\begin{codesample2}
   1.180 -  ssh myserver date
   1.181 -\end{codesample2}
   1.182 -
   1.183 -If, on your server, you have login scripts that print banners or other
   1.184 -junk even when running non-interactive commands like this, you should
   1.185 -fix them before you continue, so that they only print output if
   1.186 -they're run interactively.  Otherwise these banners will at least
   1.187 -clutter up Mercurial's output.  Worse, they could potentially cause
   1.188 -problems with running Mercurial commands remotely.  Mercurial makes
   1.189 -tries to detect and ignore banners in non-interactive \command{ssh}
   1.190 -sessions, but it is not foolproof.  (If you're editing your login
   1.191 -scripts on your server, the usual way to see if a login script is
   1.192 -running in an interactive shell is to check the return code from the
   1.193 -command \Verb|tty -s|.)
   1.194 -
   1.195 -Once you've verified that plain old ssh is working with your server,
   1.196 -the next step is to ensure that Mercurial runs on the server.  The
   1.197 -following command should run successfully:
   1.198 -\begin{codesample2}
   1.199 -  ssh myserver hg version
   1.200 -\end{codesample2}
   1.201 -If you see an error message instead of normal \hgcmd{version} output,
   1.202 -this is usually because you haven't installed Mercurial to
   1.203 -\dirname{/usr/bin}.  Don't worry if this is the case; you don't need
   1.204 -to do that.  But you should check for a few possible problems.
   1.205 +En un mundo ideal, debería poder ejecutar la siguiente orden
   1.206 +exitósamente, y debería imprimir exactamente una línea de salida,
   1.207 +la fecha y hora actual.
   1.208 +\begin{codesample2}
   1.209 +  ssh miservidor fecha
   1.210 +\end{codesample2}
   1.211 +
   1.212 +Si en su servidor tiene guión que se ejecuta a la entrada e imprimie
   1.213 +letreros o cualquier otra cosa, incluso cuando se ejecutan órdenes no
   1.214 +interactivas como esta, debería arreglarlo antes de continuar, de
   1.215 +forma que solamente imprima algo si se ejecuta interactivamente.  De
   1.216 +otra forma estos letreros al menos llenarán la salida de Mercurial.
   1.217 +incluso podrían causar problemas potenciales cuando se ejecuten
   1.218 +órdenes de forma remota.  Mercurial intenta detectar e ignorar los
   1.219 +letreros en sesiones no interactivas de \command{ssh}, pero no es
   1.220 +a prueba de tontos.  (Si edita sus guiones de entrada en el servidor,
   1.221 +la forma usual de ver si un guión de script se ejecuta en un shell
   1.222 +interactivo, es verificar el código de retorno de la orden
   1.223 +\Verb|tty -s|.)
   1.224 +
   1.225 +Cuando verifique que el venerado ssh funciona en su servidor, el
   1.226 +paso siguiente es asegurar que Mercurial corre en el servidor.  La
   1.227 +orden siguiente debería ejecutarse satisfactoriamente:
   1.228 +\begin{codesample2}
   1.229 +  ssh miservidor hg version
   1.230 +\end{codesample2}
   1.231 +Si ve un mensaje de error en lugar de la salida usual de 
   1.232 +\hgcmd{version}, será porque no ha instalado Mercurial en
   1.233 +\dirname{/usr/bin}.  No se preocupe si este es el caso; no necesita
   1.234 +hacerlo.  Pero debería revisar los posibles problemas presentados a
   1.235 +continuación:
   1.236  \begin{itemize}
   1.237 -\item Is Mercurial really installed on the server at all?  I know this
   1.238 -  sounds trivial, but it's worth checking!
   1.239 -\item Maybe your shell's search path (usually set via the \envar{PATH}
   1.240 -  environment variable) is simply misconfigured.
   1.241 -\item Perhaps your \envar{PATH} environment variable is only being set
   1.242 -  to point to the location of the \command{hg} executable if the login
   1.243 -  session is interactive.  This can happen if you're setting the path
   1.244 -  in the wrong shell login script.  See your shell's documentation for
   1.245 -  details.
   1.246 -\item The \envar{PYTHONPATH} environment variable may need to contain
   1.247 -  the path to the Mercurial Python modules.  It might not be set at
   1.248 -  all; it could be incorrect; or it may be set only if the login is
   1.249 -  interactive.
   1.250 +\item Está instalado Mercurial en el servidor?  Se que suena trivial
   1.251 +  pero es mejor revisar!
   1.252 +\item Tal vez la ruta de búsqueda de la interfaz de órdenes
   1.253 +  (normalmente vía la variable de ambiente \envar{PATH}) simplemente
   1.254 +  está mal configurada.
   1.255 +\item Puede ser que su variable de ambiente \envar{PATH} soalamente
   1.256 +  apunte al lugar en el cual está el ejecutable \command{hg} si la
   1.257 +  sesión de entrada es interactiva.  Puede suceder si establece la
   1.258 +  ruta en el guión de shell de entrada incorrecto.  Consulte la
   1.259 +  documentación de su línea de órdenes.
   1.260 +\item La variable de ambiente \envar{PYTHONPATH} puede requerir la
   1.261 +  ruta a los módulos de Mercurial en Python.  Puede que nisiquiera
   1.262 +  está establecida; podría estar incorrecta; o puede ser que se
   1.263 +  establezca únicamente cuando hay entradas interactivas.
   1.264  \end{itemize}
   1.265  
   1.266 -If you can run \hgcmd{version} over an ssh connection, well done!
   1.267 -You've got the server and client sorted out.  You should now be able
   1.268 -to use Mercurial to access repositories hosted by that username on
   1.269 -that server.  If you run into problems with Mercurial and ssh at this
   1.270 -point, try using the \hggopt{--debug} option to get a clearer picture
   1.271 -of what's going on.
   1.272 -
   1.273 -\subsection{Using compression with ssh}
   1.274 -
   1.275 -Mercurial does not compress data when it uses the ssh protocol,
   1.276 -because the ssh protocol can transparently compress data.  However,
   1.277 -the default behaviour of ssh clients is \emph{not} to request
   1.278 -compression.
   1.279 -
   1.280 -Over any network other than a fast LAN (even a wireless network),
   1.281 -using compression is likely to significantly speed up Mercurial's
   1.282 -network operations.  For example, over a WAN, someone measured
   1.283 -compression as reducing the amount of time required to clone a
   1.284 -particularly large repository from~51 minutes to~17 minutes.
   1.285 -
   1.286 -Both \command{ssh} and \command{plink} accept a \cmdopt{ssh}{-C}
   1.287 -option which turns on compression.  You can easily edit your \hgrc\ to
   1.288 -enable compression for all of Mercurial's uses of the ssh protocol.
   1.289 +Si puede ejecutar \hgcmd{version} sobre una conexión ssh,
   1.290 +felicitaciones!  Ha logrado la interacción entre el cliente y el 
   1.291 +servidor.  Ahora debería poder acceder a los repositorios de
   1.292 +Mercurial que tiene el usuario en el servidor.  Si tiene problemas
   1.293 +con Mercurial y ssh en este punto, intente usar la opción
   1.294 +\hggopt{--debug} para tener información más clara de lo que está
   1.295 +sucediendo.
   1.296 +
   1.297 +\subsection{Compresión con ssh}
   1.298 +
   1.299 +Mercurial no comprime datos cuando usa el protocolo ssh, dado que
   1.300 +el protocolo puede comprimir datos transparentemente.  Pero el
   1.301 +comportamiento predeterminado del cliente ssh es \emph{no}
   1.302 +solicitar compresión.
   1.303 +
   1.304 +Sobre cualquier red distinta a una LAN rápida(incluso con una red
   1.305 +inalámbrica), hacer uso de compresión puede mejorar el rendimiento
   1.306 +de las operaciones de Mercurial que involucren la red.  Por ejemplo,
   1.307 +sobre WAN, alguien ha medido la compresión reduciendo la cantidad
   1.308 +de tiempo requerido para clonar un repositorio particularmente
   1.309 +grande de~51 minutos a~17 minutos.
   1.310 +
   1.311 +Tanto \command{ssh} como \command{plink} aceptan la opción
   1.312 +\cmdopt{ssh}{-C} que activa la compresión.  Puede editar fácilmente
   1.313 +su \hgrc\ para habilitar la compresión para todos los usos de
   1.314 +Mercurial sobre el protocolo ssh.
   1.315  \begin{codesample2}
   1.316    [ui]
   1.317    ssh = ssh -C
   1.318  \end{codesample2}
   1.319  
   1.320 -If you use \command{ssh}, you can configure it to always use
   1.321 -compression when talking to your server.  To do this, edit your
   1.322 -\sfilename{.ssh/config} file (which may not yet exist), as follows.
   1.323 +Si usa \command{ssh}, puede reconfigurarlo para que siempre use
   1.324 +compresión cuando se comunique con su servidor.  Para hacerlo,
   1.325 +edite su fichero \sfilename{.ssh/config}(que puede no existir
   1.326 +aún), de la siguiente forma:
   1.327  \begin{codesample2}
   1.328    Host hg
   1.329      Compression yes
   1.330 -    HostName hg.example.com
   1.331 -\end{codesample2}
   1.332 -This defines an alias, \texttt{hg}.  When you use it on the
   1.333 -\command{ssh} command line or in a Mercurial \texttt{ssh}-protocol
   1.334 -URL, it will cause \command{ssh} to connect to \texttt{hg.example.com}
   1.335 -and use compression.  This gives you both a shorter name to type and
   1.336 -compression, each of which is a good thing in its own right.
   1.337 +    HostName hg.ejemplo.com
   1.338 +\end{codesample2}
   1.339 +Que define un alias, \texttt{hg}.  Cuando lo usa con la orden
   1.340 +\command{ssh} o con una URL de Mercurial con protocolo\texttt{ssh},
   1.341 +logrará que \command{ssh} se conecte a \texttt{hg.ejemplo.com}
   1.342 +con compresión.  Que le dará un nombre más corto para teclear y
   1.343 +compresión, los cuales por derecho propio son buenos.
   1.344  
   1.345  \section{Serving over HTTP using CGI}
   1.346  \label{sec:collab:cgi}