ssh-copia-id pero al revés

ssh-copia-id pero al revés

Entiendo cómo puedo poner mi clave ssh pública en las claves autorizadas de otra máquina ssh-copy-idsiempre que tenga el nombre de usuario/contraseña de la máquina remota.

¿Cómo es posible lo contrario? Obtener la clave pública de alguna máquina remota (no se requerirá contraseña porque es pública) y colocarla en mis propias claves autorizadas (nuevamente, no se requiere contraseña ya que es mía).

Respuesta1

ssh ${remote_host} cat .ssh/id_rsa.pub | tee -a $HOME/.ssh/authorized_keys

Respuesta2

Estás combinando dos tipos diferentes de claves SSH allí. Aunque son similares en estructura, tienen un propósito muy diferente.

Su clave pública es lo que podría llamarse unaclave de usuario: aunque espúblico, es decir, no hay necesidad de mantenerlo en secreto, no espublicadoautomáticamente por cualquier medio. Si quieres ponerlo en tu página web, claro, puedes hacerlo. Pero debes hacerlo por tu cuenta.

Las claves por máquina, por otro lado, se llamanclaves de host. Estos se intercambian automáticamente al iniciar sesión, por lo que pueden considerarsepublicado. Pero las claves de host no van a un authorized_keysarchivo: van a known_hostssu lugar. El simple hecho de tener la clave de host de alguna máquina no le dará a nadie ningún tipo de acceso: simplemente le permite a su cliente SSH confirmar que la máquina es la misma que antes cuando se conecta a ella.

Si el administrador del sistema elige habilitar HostbasedAuthenticationen /etc/ssh/sshd_configy la clave del host remoto está en un /etc/ssh/ssh_known_hostsarchivo de todo el sistema, entonces sería posible agregar el nombre del host remoto /etc/hosts.equivo /etc/ssh/shosts.equivpermitirlo.todosen ese host remoto para iniciar sesión en las cuentas correspondientes en el host local, sin ingresar una contraseña. Si el administrador del sistema también establece IgnoreRhostsen no, entonces usted, como usuario normal, podría permitir de manera similar que un usuario específico en un host remoto específico acceda a su cuenta en el host local sin una contraseña, colocando la clave de host del host remoto en su ~/.ssh/known_hostsy en el nombredeusuario@nombredehost en su ~/.rhostso ~/.shosts. Pero este método de autenticación está deshabilitado de forma predeterminada.

(¿Por qué dos archivos como ~/.shostsy ~/.rhosts, crees? Bueno, es porque el archivo fue utilizado por las antiguas herramientas /// no .rhostscifradas , y SSH se diseñó originalmente como un reemplazo directo para él. Usarías o si deseaba permitir el acceso a través de las herramientas y , o si deseaba permitir solo el acceso SSH).rshrloginrexecrcp.rhostshosts.equivrshssh.shostsshosts.equiv

Respuesta3

Al usar ssh-keyscan o automáticamente cuando se conecta a un host desconocido, agregará la clave aknown_hosts por usted. Si desea hacerlo manualmente, puede utilizar el siguiente comando:

ssh-keyscan hostname >> ~/.ssh/known_hosts

información relacionada