Digamos que su directorio .ssh
contiene 30 teclas (15 privados y 15 públicos)GIT y SSH, ¿qué tecla se usa?
Donde en GIT
, puede uno de comprobación que uno se utiliza para conectarse a un acuerdo de recompra remoto determinado?
Digamos que su directorio .ssh
contiene 30 teclas (15 privados y 15 públicos)GIT y SSH, ¿qué tecla se usa?
Donde en GIT
, puede uno de comprobación que uno se utiliza para conectarse a un acuerdo de recompra remoto determinado?
La siguiente entrada en .ssh/config
archivo resuelve el problema
host git.assembla.com
user git
identityfile ~/.ssh/whatever
Dónde ~/.ssh/whatever
es un camino a su clave privada
Además, el usuario y el host pueden ser recogidos de
git push [email protected]:repo_name.git
^__ ^_______________
user host
así que si quisiera utilizar otra clave ssh para un host diferente, ¿repetiría lo mismo después del primero? ¿El archivo de identidad pertenece al primer host anterior? – MikeSchem
bien, sí, parece que ese es el caso https://www.cyberciti.biz/faq/force-ssh-client-to-use-given-private-key-identity-file/ – MikeSchem
Dado que git
solo usa ssh
para conectarse, usará la clave ssh
que usaría para conectarse al host remoto. Vea el archivo ~/.ssh/config
para más detalles; El bloque host
usa la directiva IdentityFile
para especificar la clave privada que se usará. La página del manual ssh_config(5)
contiene todos los detalles.
A menos que se especifique en el .ssh/config
, utilizará el archivo de clave privada predeterminado. El archivo predeterminado es ~/.ssh/id_rsa
o ~/.ssh/id_dsa
o ~/.ssh/identity
según la versión del protocolo.
En el servidor remoto, edite el archivo sshd_config y cambie LogLevel de INFO a VERBOSE y reinicie ssh.
Ahora su archivo de registro tendrá la huella digital de la clave que se utilizó para autenticar a cada usuario.
En Ubuntu, estos archivos son:
/etc/ssh/sshd_config
/var/log/auth.log
pero pueden ser diferentes en otra distribución. Simplemente busque su ubicación en google (algunos usan/var/log/secure por ejemplo).
Al ejecutar ssh en modo detallado, también conocido como ssh -v [email protected]
, se imprimirá una gran carga de información de depuración, que también contiene detalles sobre qué archivos de claves está intentando iniciar sesión.
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 332
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Ahora bien, si se combina esto con el Paso 4 en la propia Git SSH help page, ssh -vT [email protected]
le puede dar la respuesta.
Nota: También puede usar el interruptor -i
para indicar a ssh durante la ejecución del comando, qué archivo de clave debe usar.
Vea también: http://stackoverflow.com/questions/18845799/show-ssh-key-file-in-git-bash – Sharadh
También puede grep la salida de error estándar del comando ssh para encontrar el archivo clave de esta manera: 'ssh -vv user @ host 2>> (oferta grep) '- esto facilitará las cosas. El último archivo debe ser la clave pública. Por ejemplo: 'debug1: ofreciendo la clave pública de RSA:/Users/macbookpro/.ssh/id_rsa' –
Quien votó por "cerrar", esta pregunta - está directamente relacionada con la programación por la misma razón, las preguntas sobre GIT están permitidas aquí – JAM
Podría decirse ... Esto realmente es una pregunta de superusuario, el problema aquí no es git, pero la plataforma en la que se está ejecutando. No puede verificar el problema con "in git", porque a git no le importa, se relaciona solo con la forma en que usa ssh y cómo está configurado. ¿Utiliza ssh-agent, cualquier tipo de sistema de administración de claves, qué sistema operativo usa, qué versión, etcétera? – Arafangion