2011-08-09 10 views

Respuesta

47

Está buscando ssh-copy-id. Todo lo que hace este comando es crear .ssh y .ssh/authorized_keys y establecer sus permisos apropiadamente si no existen. A continuación, agrega su clave pública al final de .ssh/authorized_keys.

+12

Genial. Simplemente ejecute 'ssh-copy-id root @ server'. –

0

La respuesta seleccionada es correcta, pero aquí es un script bash simple para cualquier persona que quiere combinar keygen + copia: https://gist.github.com/wilcollins/bc420581da87962b8b47

Este archivo crea una clave SSH en una máquina cliente, aplica los permisos de archivo apropiados, copias en el directorio local ~/.ssh, & copias en el servidor especificado.

+0

Solo el enlace a sus propias cosas es [no es una buena respuesta] (// stackoverflow.com/help/promotion). Una buena respuesta que involucra un recurso externo incluye la información relevante en la respuesta y hace referencia a lo siguiente: ¿De qué es esto de lo que estás hablando? ¿Dónde lo instalo? ¿Como lo instalo? ¿Cómo uso esto para resolver el ** problema exacto ** que tengo en mi pregunta? ¿Estás afiliado a esto de alguna forma o forma? Ver: [¿Cómo puedo vincular a un recurso externo de una manera amigable con la comunidad?] (// meta.stackexchange.com/questions/94022) – Mogsdad

+0

"Este archivo crea una clave SSH en una máquina cliente, aplica los permisos de archivo apropiados , copias al directorio local ~/.ssh, y copias al servidor especificado. " y el uso está incluido en los comentarios del recurso proporcionado.Este es un comando que envía una clave pública a un host remoto tal como lo hace la pregunta, junto con la creación de dicha clave de antemano – wilco

8

Usted podría estar buscando este comando:

cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys' 

que añade su clave pública a los servidores de llaves autorizadas.

Source

+0

Esto es más portátil que la respuesta aceptada, ya que no todos los sistemas (te estoy mirando, OS X) tienen 'ssh-copy-id'. Aunque, personalmente, lo modificaría ligeramente a 'cat ~/.ssh/id_rsa.pub | ssh user @ hostname 'tee -a .ssh/authorized_keys'', pero eso es solo preferencia personal. –

+1

Parece que ssh-copy-id es parte de MacOS Sierra, lo cual es agradable. – Graham

1

Si el servidor ya está configurado para not accept password-based login, es posible obtener un error de Permission denied (publickey).

Este es otro método para enviar la clave, usando netcat, por lo que no tiene que autenticarse. Solo funcionará en una red local, pero puede usar el reenvío de puertos para hacer esto a través de Internet.

En el servidor:

$ nc -l 55555 >> ~/.ssh/authorized_keys 

En el cliente (sustituir HOSTNAME con el nombre de host o dirección IP del servidor):

$ nc HOSTNAME 55555 < ~/.ssh/id_rsa.pub 

Puede reemplazar 55555 con un puerto abierto de su elección.

fuente: chat over lan from linux to linux?


apéndice para los novatos totales: Yo no creo que nadie ha mencionado esto todavía, pero si usted consigue ERROR: failed to open ID file '/home/username/.pub': No such file, es necesario generar una clave primero. Las páginas de ayuda de Ubuntu tienen una gran guía en Generating RSA Keys.

Cuestiones relacionadas