¿Cómo agregar la clave RSA al archivo Authorized_keys?

90

Creé una clave pública RSA y quiero agregarla al authorized_keysarchivo, pero no existe tal archivo en mi máquina Ubuntu 11.10.

¿Cómo puedo agregar la clave a authorized_keys?

Raji AC
fuente

Respuestas:

105

Asegúrese de que al ejecutar la solución de Michael Krelin haga lo siguiente

cat <your_public_key_file> >> ~/.ssh/authorized_keys

Tenga en cuenta que el doble >sin el doble, >el contenido existente de allowed_keys se sobrescribirá (¡nuked!) Y eso puede no ser deseable

donden1
fuente
Debe incluir cómo capturar correctamente la información de la clave pública, simplemente copiarla y pegarla no es suficiente. Por ejemplo:
einarc
4
¿Puede explicar por qué no funciona copiar / pegar? Tengo mucha curiosidad.
mcsilvio
50
mkdir -p ~/.ssh/

Para sobrescribir autorizadas_keys

cat <your_key >~/.ssh/authorized_keys

Para agregar al final de claves_autorizadas

cat <your_key >>~/.ssh/authorized_keys
Michael Krelin - hacker
fuente
He generado una clave en el lado del cliente y copié esa clave en la máquina del servidor, pero usando el comando ssh 192.168.2.7 no permite el inicio de sesión.
Raji AC
¿No permite iniciar sesión diciendo qué?
Michael Krelin - hacker
al ejecutar este comando, solicita la contraseña del servidor. Quiero un inicio de sesión sin contraseña
Raji AC
¿Está la identificación (parte de publicación) en ~ / .ssh / allowed_keys en el control remoto? ¿La identificación (parte no pub) es utilizada por ssh al intentar iniciar sesión? Puede intentar especificarlo explícitamente con -i. Además, puede probar ssh -vy puede verificar los permisos de sus claves_autorizadas en el control remoto. Y revise los registros allí.
Michael Krelin - hacker
¿Podemos de alguna manera verificar si la clave ya está agregada? Como lo hace ssh-copy-id para el sistema remoto
Dmitriusan
32

Sé que estoy respondiendo demasiado tarde, pero para cualquier otra persona que necesite esto, ejecute el siguiente comando desde su máquina local

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

esto ha funcionado perfectamente bien. Todo lo que necesita hacer es reemplazar

[email protected]

con su propio usuario para ese host en particular

Faisal Sarfraz
fuente
31

Ya existe un comando en la suite ssh para hacer esto automáticamente por usted. Es decir, inicie sesión en un host remoto y agregue la clave pública al archivo de claves_autorizadas de esa computadora.

ssh-copy-id -i /path/to/key/file [email protected]

Si la clave que está instalando es ~/.ssh/id_rsa, incluso puede quitar la -ibandera por completo.

¡Mucho mejor que hacerlo manualmente!

tkarls
fuente
2
>ssh user@serverip -p portnumber 
>sudo bash (if user does not have bash shell else skip this line)
>cd /home/user/.ssh
>echo ssh_rsa...this is the key >> authorized_keys
i_tanova
fuente