2011-02-25 17 views
8

quiero hacersvn + ssh sin contraseña desde la línea de comando?

svn update /Users/radek/Sites/3.0.5/ -r HEAD --force 

sin la necesidad de escribir la contraseña.

svn se conecta a nuestro servidor de repositorio pero no estoy seguro bajo qué nombre de usuario (¿cómo puedo averiguarlo?). Supongo que sería root o radek

La contraseña que escribo para que svn proceda es la misma que la de root en el servidor del repositorio, así que agregué mi clave pública al archivo authorized_keys de la raíz. Así que me envío al servidor de repositorio sin escribir la contraseña, pero no afectó a svn pidiendo contraseña. La contraseña del usuario radek en el servidor del repositorio es diferente a la que escribo para svn up

Si confirmo algo de Eclipse, el autor es radek.

Solución

svn info 

dijeron que el usuario que tengo que entrar en el servidor de repositorio y luego añade la clave pública a su archivo authorized_keys. Ahora no tengo que ingresar el pase cuando uso svn.

+0

qué correr el agente ssh? ¿Agregaste tu clave secreta al agente? – wilhelmtell

+0

No se trata de programar. Votado para migrar a http://superuser.stackexchange.com –

+1

soy programador y esto me ayudó a escribir un programa para automatizar checkins svn de mis programas. – Kyle

Respuesta

6

Hay un programa llamado "ssh-agent" que guardará una clave desbloqueada RSA o DSA en la memoria y suministrará esta clave a SSH a través de un socket UNIX. Esto se puede usar para conexiones SSH "sin contraseña", suponiendo que genere un par de claves pública/privada RSA o DSA, y agregue la clave pública al archivo "authorized_keys" o "authorized_keys2" del host remoto. Cuando primero agrega una clave a ssh-agent o enciende ssh-agent, deberá proporcionar su contraseña, pero los usos posteriores de SSH pueden ocurrir sin una contraseña. Usted puede encontrar los siguientes artículos útiles en términos de creación de agente de SSH:

Tenga en cuenta que en Mac OS X (a partir de 10.5 y superior), si genera el par de claves privadas/públicas y coloca la clave pública en el archivo authorized_keys del host remoto, cuando realice SSH en ese host, Mac OS X iniciará automáticamente su propio ssh-agent (no se requiere configuración) y ofrecerá a recuerda la contraseña (es w lo guardaré en KeyChain). Puede leer más sobre eso en Mac OS X Leopard -- Built-In SSH Agent.

+0

Estoy en OS X 10.6.2 y agregué clave pública a las "authorized_keys" de la raíz en el servidor del repositorio, pero no sirvió. ¿O me estoy perdiendo algo? – Radek

+0

A menos que esté autenticando como root, no debería colocarlo allí; debe colocarlo debajo de "~/.ssh/authorized_keys2" en el host remoto. También debe asegurarse de que el host esté configurado para permitir el uso de estas claves (algunos sistemas están configurados para no permitir esto). –

+0

~ es el directorio de inicio, ¿verdad? La contraseña que tengo que escribir no es la del usuario 'radek' sino 'root'. Puedo iniciar sesión en el servidor del repositorio sin escribir ninguna contraseña como root, pero no me ayudó. Todavía tiene que escribir la contraseña de svn para svn – Radek

3

Si no puede utilizar un archivo de clave, utilice sshpass (en Linux):

Instalar sshpass

$ sudo apt-get install sshpass 

Establecer la variable de entorno temporal

$ export SSHPASS=yourpass 

Editar la configuración SVN archivo

$ nano ~/.subversion/config 

Por último comente añadir sshpass -e a la línea de ssh, antes del comando ssh

ssh = $SVN_SSH sshpass -e ssh -q -o ControlMaster=no 
+0

Gracias :) Estaba buscando este largo –

Cuestiones relacionadas