por - ¿Cómo especificar una ubicación diferente para las claves ssh que se cargan durante la configuración de rhc?
ssh-keygen-t rsa (1)
Por lo que veo, solo quieres que rhc
no use tu clave ssh por defecto. Así que aquí es cómo se crea una clave separada y se configura rhc para usarla en lugar de la predeterminada.
Los puntos clave son que:
- selecciona
no
para generar y cargar la clave ssh durante larhc setup
- agrega su clave por separado con
rhc sshkey add
- configuras ssh para usar la tecla diferente para ese dominio como lo mencionaste en tu ejemplo original
¿Esto cubre tus preocupaciones?
[crackit@koTapaH ~]$ mkdir /home/crackit/my_key_location
[crackit@koTapaH ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/crackit/.ssh/id_rsa): /home/crackit/my_key_location/key.rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/crackit/my_key_location/key.rsa.
Your public key has been saved in /home/crackit/my_key_location/key.rsa.pub.
The key fingerprint is:
c5:20:15:fb:17:96:86:8f:88:28:18:17:2a:b8:eb:51 crackit@koTapaH
The key''s randomart image is:
+--[ RSA 2048]----+
| . ..+. |
|.. . . + . . |
|= . . + = |
|.= . . + = . |
|o .E. . S o o |
| ... . |
|.. |
|. . |
| . |
+-----------------+
[crackit@koTapaH ~]$ rhc setup
OpenShift Client Tools (RHC) Setup Wizard
This wizard will help you upload your SSH keys, set your application namespace,
and check that other programs like Git are properly installed.
If you have your own OpenShift server, you can specify it now. Just hit enter to
use the server for OpenShift Online: openshift.redhat.com.
Enter the server hostname: |openshift.redhat.com|
You can add more servers later using ''rhc server''.
Login to openshift.redhat.com:
Login to openshift.redhat.com: [email protected]
Password: *************
OpenShift can create and store a token on disk which allows to you to access the
server without using your password. The key is stored in your home directory and
should be kept secret. You can delete the key at any time by running ''rhc
logout''.
Generate a token now? (yes|no) yes
Generating an authorization token for this client ... lasts about 1 month
Saving configuration to /home/crackit/.openshift/express.conf ... done
No SSH keys were found. We will generate a pair of keys for you.
Created: /home/crackit/.ssh/id_rsa.pub
Your public SSH key must be uploaded to the OpenShift server to access code.
Upload now? (yes|no)
no
You can upload your public SSH key at a later time using the ''rhc sshkey''
command
Checking for git ... found git version 2.1.0
Checking common problems .. done
Checking for a domain ... foobar
Checking for applications ... found 2
jenkins http://jenkins-foobar.rhcloud.com/
tmp http://tmp-foobar.rhcloud.com/
You are using 2 of 3 total gears
The following gear sizes are available to you: small, medium
Your client tools are now configured.
[crackit@koTapaH ~]$ rhc sshkey add mykey my_key_location/key.rsa.pub
RESULT:
SSH key my_key_location/key.rsa.pub has been added as ''mykey''
[crackit@koTapaH ~]$ vi .ssh/config
<.. do your modifications here ..>
[crackit@koTapaH ~]$ rhc ssh tmp
Connecting to [email protected] ...
*********************************************************************
You are accessing a service that is for use only by authorized users.
If you do not have authorization, discontinue use at once.
Any use of the services is subject to the applicable terms of the
agreement which can be found at:
https://www.openshift.com/legal
*********************************************************************
Welcome to OpenShift shell
This shell will assist you in managing OpenShift applications.
!!! IMPORTANT !!! IMPORTANT !!! IMPORTANT !!!
Shell access is quite powerful and it is possible for you to
accidentally damage your application. Proceed with care!
If worse comes to worst, destroy your application with "rhc app delete"
and recreate it
!!! IMPORTANT !!! IMPORTANT !!! IMPORTANT !!!
Type "help" for more info.
[tmp-foobar.rhcloud.com 550000a0e0b8cdca4c000040]/> exit
exit
Connection to tmp-foobar.rhcloud.com closed.
[crackit@koTapaH ~]$
Actualización : no noté que se generan claves. Pero estoy seguro de que las claves generadas durante la rhc setup
no se utilizan realmente. Primero porque las claves de la ubicación predeterminada nunca se agregan a openshift. Y puedes ver una prueba rápida a continuación. Otra forma de ver es la rhc sshkeys list
.
Otra cosa es que si ya tienes las llaves en la ubicación predeterminada, entonces no se generan llaves (en cuyo caso aún debes seleccionar no
para no cargarlas). Pero en realidad es un error menor IMO en rhc
que las claves ssh se generan sin preguntar al usuario. Puede ser un caso de uso muy raro: no tiene la clave predeterminada y desea usar una clave de una ubicación no estándar (este no es su caso de uso en el que tiene una clave en la ubicación estándar, simplemente no desea usarlo) pero aún así IMO uno no debe generar algo que el usuario no solicitó. Así que aquí es cómo le muestro que solo se utiliza mi clave personalizada deseada:
[crackit@koTapaH ~]$ rm -rf .ssh/id_rsa*
[crackit@koTapaH ~]$ rhc ssh tmp
Connecting to [email protected] ...
<...>
Type "help" for more info.
[tmp-foobar.rhcloud.com 550000a0e0b8cdca4c000040]/> exit
exit
Connection to tmp-foobar.rhcloud.com closed.
[crackit@koTapaH ~]$ ls .ssh/
config known_hosts
[crackit@koTapaH ~]$
Actualización 2 Por supuesto, token no puede ayudarte con ssh:
[crackit@koTapaH ~]$ rm -rf my_key_location
[crackit@koTapaH ~]$ rhc ssh tmp
Connecting to [email protected] ...
no such identity: /home/crackit/my_key_location/key.rsa: No such file or directory
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
La clave SSH se usa para ssh. Token se usa para solicitudes API. Estos son casos de uso diferentes. rhc usa el ejecutable ssh
debajo, por lo que usar una clave personalizada significa editar ~/.ssh/config
para establecer su clave predeterminada en otra ubicación o establecer diferentes claves para diferentes hosts. Esto no se maneja bien con la rhc setup
. Pero una vez que tenga su conjunto de claves, ya no tendrá que ejecutar la rhc setup
.
Estoy usando la herramienta rhc cli para proyectos OpenShift. He encontrado un problema con la clave rhc ssh predeterminada.
En cualquier acción relacionada con ssh (setup, app-create, etc.) rhc crea la clave ~/.ssh/id_rsa
si no existe. No me gusta ese comportamiento, y me gustaría usar algo como ~/.ssh/OpenShift-SSH-Keys/my_id_rsa
.
Porque durante la configuración de rhc, no me preguntó de qué ubicación quería cargar las claves. Por lo tanto, también busqué en ~/.openshift/express.conf
y solo vi las configuraciones para ssl; no ssh.
Así que encontré en Internet esta siguiente línea de configuración para agregar a ~/.openshift/express.conf
:
ssh_key_file=''~/.ssh/OpenShift-SSH-Keys/my_id_rsa''
Lo agregué y también modifiqué mi archivo ~/.ssh/config
:
# Openshift *.rhcloud.com ssh-key config
Host *.rhcloud.com
IdentityFile ~/.ssh/OpenShift-SSH-Keys/my_id_rsa
IdentitiesOnly yes
VerifyHostKeyDNS yes
StrictHostKeyChecking no
PasswordAuthentication no
UserKnownHostsFile ~/.ssh/known_hosts
Para terminar configuré mi cuenta así:
rhc setup --config ~/.openshift/express.conf -l [email protected]
Salida de esta línea de comando:
OpenShift Client Tools (RHC) Setup Wizard
This wizard will help you upload your SSH keys, set your application namespace, and check that other programs like Git are
properly installed.
If you have your own OpenShift server, you can specify it now. Just hit enter to use the server for OpenShift Online:
openshift.redhat.com.
Enter the server hostname: |openshift.redhat.com|
You can add more servers later using ''rhc server''.
Using [email protected] to login to openshift.redhat.com
RSA 1024 bit CA certificates are loaded due to old openssl compatibility
Password: ************************
OpenShift can create and store a token on disk which allows to you to access the server without using your password. The
key is stored in your home directory and should be kept secret. You can delete the key at any time by running ''rhc
logout''.
Generate a token now? (yes|no) yes
Generating an authorization token for this client ... RSA 1024 bit CA certificates are loaded due to old openssl compatibility
lasts 29 days
Saving configuration to /Users/theuser/.openshift/express.conf ... done
No SSH keys were found. We will generate a pair of keys for you.
Created: /Users/theuser/.ssh/id_rsa.pub
Your public SSH key must be uploaded to the OpenShift server to access code. Upload now? (yes|no) no
You can upload your public SSH key at a later time using the ''rhc sshkey'' command
Checking for git ... found git version 2.5.0
Checking common problems .. done
Checking for a domain ... mydomainz1955
Checking for applications ... found 1
myapp http://myapp-mydomainz1955.rhcloud.com/
You are using 2 of 3 total gears
The following gear sizes are available to you: small
Your client tools are now configured.
Como puede ver en la salida de la línea de comando: No SSH keys were found. We will generate a pair of keys for you.
No SSH keys were found. We will generate a pair of keys for you.
, aunque especifiqué en el ~/.openshift/express.conf
que ya tenía las claves ssh generadas, la rhc setup
no las tomó en consideración o no las encontró.
Entonces, según ustedes, ¿es posible especificar de alguna manera una ubicación diferente para las claves ssh que se cargan durante la configuración de rhc?
Nota: Sé cómo agregar una clave ssh adicional, pero me gustaría dejar de crear / usar ~/.ssh/id_rsa