git – Uso de varias claves públicas SSH

Pregunta:

Tengo una cuenta personal y una cuenta de empresa en Unfuddle. En Unfuddle, las claves SSH solo se pueden usar en una sola cuenta, por lo que necesito crear una clave SSH separada en mi computadora portátil para ambas cuentas. Ejecuté ssh-keygen -t rsa para generar dos claves con nombres diferentes (personal es el nombre predeterminado y la empresa es {empresa} _rsa). El problema ahora es que parece que mi clave predeterminada se usa en todas partes y no puedo encontrar cómo especificar una clave para usar en Git para repositorios individuales.

Entonces, mi pregunta es: ¿Cómo especifico una clave SSH para usar en una base de repositorio a repositorio?

Configuré mi ssh_config (~ / .ssh / config) pero todavía no parece funcionar.

config:

Host {personalaccount}.unfuddle.com
     HostName {personalaccount}.unfuddle.com
     User git
     IdentityFile /Users/dave/.ssh/id_rsa

Host {companyaccount}.unfuddle.com
     HostName {companyaccount}.unfuddle.com
     User git
     IdentityFile /Users/dave/.ssh/cage_rsa

Mi archivo de configuración de repositorio de Git para un repositorio en la cuenta de recuperación de mi empresa se ve así:

[remote "origin"]
     url = git@{companyaccount}.unfuddle.com:{companyaccount}/overall.git
     fetch = +refs/heads/*:refs/remotes/origin/*

Así que no estoy seguro de si hay algún problema con mi configuración ssh o mi configuración git.

Respuesta:

Si tiene un ssh-agent activo que tiene id_rsa su clave id_rsa , entonces el problema es probable que ssh esté ofreciendo esa clave primero. Unfuddle probablemente lo acepta para autenticación (por ejemplo, en sshd ) pero lo rechaza para obtener autorización para acceder a los repositorios de la empresa (por ejemplo, en cualquier software interno que usen para la autorización, posiblemente algo parecido a Gitolite). Quizás haya una manera de agregar su clave personal a la cuenta de la empresa (varias personas no comparten los mismos archivos de clave pública y privada corp_rsa ?).


La palabra clave de configuración IdentitiesOnly .ssh/config se puede usar para limitar las claves que ssh ofrece al sshd remoto a solo las especificadas a través de las palabras clave de IdentityFile (es decir, se negará a usar cualquier clave adicional que se cargue en un ssh-agent activo ).

Pruebe estas secciones .ssh/config :

Host {personalaccount}.unfuddle.com
     IdentityFile ~/.ssh/id_rsa
     IdentitiesOnly yes

Host {companyaccount}.unfuddle.com
     IdentityFile ~/.ssh/{companyaccount}_rsa
     IdentitiesOnly yes

Luego, use URL de Git como estas:

git@{personalaccount}.unfuddle.com:{personalaccount}/my-stuff.git
git@{companyaccount}.unfuddle.com:{companyaccount}/their-stuff.git

Si desea aprovechar al .ssh/config mecanismo .ssh/config , puede proporcionar su propio nombre de host personalizado y cambiar el nombre de usuario predeterminado:

Host uf-mine
     HostName {personalaccount}.unfuddle.com
     User git
     IdentityFile ~/.ssh/id_rsa
     IdentitiesOnly yes

Host uf-comp
     HostName {companyaccount}.unfuddle.com
     User git
     IdentityFile ~/.ssh/{companyaccount}_rsa
     IdentitiesOnly yes

Luego, use URL de Git como estas:

uf-mine:{personalaccount}/my-stuff.git
uf-comp:{companyaccount}/their-stuff.git

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım