Cómo conectar dos computadoras remotas con ssh

Cómo conectar dos computadoras remotas con ssh

Encontré una buena cantidad de tutoriales sobre cómo conectar dos computadoras a través de ssh, pero supongo que no entiendo el punto clave. (Lo intenté por ejemploÉsteoÉste)

Digamos que soy el usuario A con ipv4 xxx.xxx.x.xx y quiero tener una conexión ssh con mi amigo (en otro país) usuario B con ipv4 yyy.yyy.y.yy

Entonces, genero una clave ssh y tengo un bonito ./ssh/id_rsa y ./ssh/id_rsa.pub y ahora se supone que debo copiarlo en la computadora de mi amigo.

Pero, como se podría sospechar,

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

no funciona (¿cómo podría hacerlo, si todavía no estamos limitados?)

¿El usuario B tiene que copiar este archivo manualmente en su propio archivo .ssh?

Y luego en mi computadora

ssh [email protected]

¿Funcionará directamente? (lo cual es muy poco realista, creo...)

Perdón por ser tan tonto, pero me parece que en el tutorial, las personas están tratando con la misma computadora...

Respuesta1

Entonces, genero una clave ssh y tengo un bonito ./ssh/id_rsa y ./ssh/id_rsa.pub y ahora se supone que debo copiarlo en la computadora de mi amigo.

Sí, específicamente, se supone que debes copiar tu archivo (la clave pública) al archivo del sistema remoto.~/.ssh/id_rsa.pub~/.ssh/authorized_keys

(Aunque realmente deberías tenertu propiocuenta de usuario en la máquina de destino, en lugar de compartir la cuenta "usuarioB" de su amigo).

[ssh-copy-id] no funciona (¿cómo podría hacerlo, ya que aún no estamos limitados?)

Normalmente, funcionaría poringresando una contraseñapara iniciar sesión en el sistema remoto. (SSH utiliza las mismas cuentas y contraseñas del "sistema" que los inicios de sesión locales).

Lo que pasa con SSH aquí es que permite al cliente elegir entre varios métodos de inicio de sesión; en realidad, no lo es.solobasado en pares de claves. (Algo así como un sitio web puede permitirle iniciar sesión con contraseña, iniciar sesión con Google, iniciar sesión con token USB, etc.)

Por supuesto, si el sistema remoto ya tiene inicios de sesión basados ​​en contraseñadesactivado(que se ha convertido en una necesidad hoy en día), entonces, de hecho, ssh-copy-id no puede funcionar de la nada y necesitará copiar su clave pública al archivo "authorized_keys" del servidor de alguna otra manera.

Afortunadamente, la clave pública es solo una larga línea de texto, por lo que puedes pegarla por correo electrónico, Discord o cualquier otra cosa. (Y aunque las claves RSA son largas, ssh-keygen -t ed25519producirán unmuchoid_ed25519.pub más corto que incluso se puede escribir en papel en caso de necesidad.)

(Aunque incluso en esas situaciones, ssh-copy-id aún puede permanecertécnicamenteútil si ya tiene un par de claves funcionando y desea usarlo para registrar otro. Una tercera alternativa serían los inicios de sesión basados ​​en Kerberos, que se encuentran principalmente en entornos corporativos o de aficionados).

¿Y luego en mi computadora funcionará directamente? (lo cual es muy poco realista, creo...)ssh [email protected]

Específicamente, la parte SSH funcionaría, sí.

Sin embargo, tenga en cuenta que SSH no pasa mágicamente por NAT y no configura automáticamente el "reenvío de puertos", por lo que si es necesario para acceder a la computadora de la casa de su amigo, deberá hacerlo por separado. (SSH usa el puerto TCP 22). De manera similar, si hay un firewall, necesitará una regla para permitir SSH.

Entoncesesodebe solucionarse antes de que ssh y.y.y.yfuncione.

(La mayoría de los tutoriales de SSH no cubren NAT doméstica porque es algo muy genérico y no es estrictamente parte de la configuración de SSH. Simplemente se supone que si alguien quiere permitir conexiones a la red doméstica a través de IPv4, entonces ya sabe qué es el reenvío de puertos. y cómo debe configurarse: no hay diferencia entre hacerlo para SSH, Minecraft, BitTorrent o lo que sea.

Además, muchos tutoriales de SSH están dirigidos más a desarrolladores y, en general, a personas que desean conectarse a un VPS que tiene su propia dirección IPv4 pública. Eso es ligeramente diferente a intentar conectarse a la PC de un amigo).

Respuesta2

Para que la autenticación de clave pública funcione, id_rsa.pubse debe adjuntar su clave pública ( ) ~/.ssh/authorized_keyspara el usuario de destino. Cómo vas a conseguirlo no es asunto de SSH; tienes que descubrirlo tú mismo. Puede utilizar cualquier medio que desee, siempre que garantice la integridad (es decir, el destinatario puede confirmar que lo que recibió es lo que usted envió). No tiene que ser confidencial, porque es tupúblicollave. La clave privada ( id_rsa) permanece en su computadora.

¿Cuál es el punto de ssh-copy-identonces? Hay dos casos de uso:

  1. La autenticación de contraseña está habilitada y desea habilitar la autenticación de clave pública. En este caso, deberá ingresar la contraseña para conectarse al host B y ssh-copy-idagregará la clave pública authorized_hosts.

  2. La autenticación de clave pública ya está configurada, pero desea agregar otra clave, por ejemplo usando una criptografía más fuerte o diferente. En particular, es posible que desee agregar una clave que no le pertenezca a usted ni a su host actual. En este caso querrás especificar el archivo de claves con la -iopción. (El valor predeterminado es agregar todas las claves proporcionadas por ssh-add -Lo id_rsa.pubsi no hay ninguna).

¿Por qué utilizar la autenticación de clave pública si es posible que ya tenga configurada la autenticación de contraseña? Porque es imposible de adivinar y no requiere interacción del usuario.

información relacionada