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}