Quiero poder iniciar sesión en un control remoto a través de ssh sin tener que ingresar la contraseña todo el tiempo.
- ¿Cómo lo configuro?
- ¿Se requiere un comando diferente para ejecutar una sesión sin contraseña?
ssh
authentication
Oxwivi
fuente
fuente
Respuestas:
Responder
Ejecute estos comandos:
Luego deberá copiar la nueva clave a su servidor :
Después de copiar la clave, ssh en la máquina como de costumbre:
Ahora puede iniciar sesión sin ingresar una contraseña de la máquina en particular en la que ejecutó los comandos.
Ejemplo
Explicación
Esto supone que ya puede conectarse con éxito a su servidor a través de SSH.
Deberá generar un par de claves SSH que le permitirá identificarse como usted mismo sin usar una contraseña. Puede optar por proteger las claves con un código de acceso si lo desea, pero esto puede dejarse en blanco para permitir un acceso SSH totalmente sin contraseña.
ssh-keygen
este creará unaid_rsa
yid_rsa.pub
archivo. Elpub
archivo es lo que va en los servidores, la clave privada (id_rsa
) es lo que permanece con usted y es cómo se identifica.ssh-copy-id user@server
reemplazando el usuario con su usuario remoto y el servidor con el nombre DNS o la dirección IP de la máquina. Le pedirá su contraseña SSH, ingrésela y, si todo se completa con éxito, podrá acceder a la máquinassh user@server
sin necesidad de una contraseña.Referencias
fuente
ssh-keygen
siga las instrucciones en pantalla, luego escribassh-copy-id user@server
reemplazar el usuario con su usuario remoto y el servidor con la máquina remotassh-copy-id "[email protected] -p 1234"
.Escriba los siguientes comandos:
ssh-keygen
Presione la Entertecla hasta que aparezca el mensaje
ssh-copy-id -i root@ip_address
(Una vez pedirá la contraseña del sistema host)
ssh root@ip_address
Ahora debería poder iniciar sesión sin ninguna contraseña.
fuente
La forma en que suelo hacer esto es la siguiente:
ssh-keygen -t rsa
(Cuando se le solicite una contraseña, déjela en blanco)
Entonces:
cat ~/.ssh/id_rsa.pub | ssh username@hostname 'cat >> .ssh/authorized_keys'
(Esto requiere que la carpeta .ssh esté en el directorio de inicio en el nombre de host de destino, con el archivo autorizado_claves)
Por supuesto, reemplace el nombre de usuario con el nombre de usuario deseado y el nombre de host con el nombre de host o la dirección IP deseados
Después de eso, solo SSH a esa caja como estás acostumbrado.
fuente
touch
ychmod
en la respuesta de Rinzwind?.ssh/authorized_keys
archivo a 0600 o esto no funcionaráNormalmente lo uso
sshpass
para eso, lo instalosudo apt-get install sshpass
y lo uso asífuente
sshpass
es un truco muy útil en los casos en que no puede cambiar el método de autenticación en el servidor remoto!https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-password-authentication
fuente
PasswordAuthentication no
a todos los usuarios? Si no es así, ¿cómo lo apago para los usuarios normales pero lo dejo sin cambios para root mientras lo estoy probando? Realmente no quiero engañarlo y bloquearme por completo.Permission denied (publickey).
conPasswordAuthentication no
. Que debo hacer ¿Me cambioPasswordAuthentication no
en otro host?Esta solución es específicamente para los usuarios que utilizan de Windows a ssh en sus máquinas remotas, incluyendo imágenes de la nube en nube de AWS y la nube CME
Descargo de responsabilidad
Recientemente usé esta solución para el inicio de sesión remoto de nuevas imágenes vm implementadas en GCE.
Herramientas utilizadas:
puttygen
descarga de puttygenwinscp
descarga de winscpPasos a realizar:
Cómo hacerlo:
1. Genere una clave / par o use la clave privada existente
Si posee una clave privada:
Abra
puttygen
, presione el botón de carga y seleccione su*.pem
archivo de clave privada ( ).Si no posee una clave privada:
puttygen
,(de la fuente 1, enlace a continuación)
2. Cree un nuevo archivo 'autorizado_keys' (con
notepad
)Copie sus datos de clave pública de la sección "Clave pública para pegar en el archivo OpenSSH Authorized Keys" del generador de claves PuTTY y pegue los datos clave en el
authorized_keys
archivo.Asegúrese de que solo haya una línea de texto en este archivo.
3. Subir clave al servidor Linux
Cargue el archivo authorised_keys al directorio de inicio en la máquina remota.
4. Establecer permisos adecuados
Crear
.ssh
directorio (si no existe)Copiar
authorized_keys
archivo al.ssh
directorio.(esto reemplazará cualquier
authorized_keys
archivo existente , tome nota de esto).Si el archivo existiera, simplemente agregue el contenido de este archivo al archivo existente.
Ejecute comandos para establecer permisos:
Ahora podrá
ssh
ingresar a la máquina remota sin ingresar credenciales cada vez.Otras lecturas:
Generando y cargando claves SSH en Windows
OpsenSSH claves certificados autenticación PEM PUB CRT
fuente
Si crea un par de claves público / privado e inicia sesión con nuestra clave pública recién creada, no necesitará escribir su contraseña. Dependiendo de la configuración de su llavero y / o agente ssh, es posible que necesite proteger su clave con una frase de contraseña.
Aquí hay uno de los muchos pasos cortos para usted. ¡Es de crucial importancia para la seguridad de este método, que la clave privada generada siga siendo privada! Nunca debe compartirlo con nadie ni permitir el acceso a él de ninguna manera.
Este comando genera una clave razonablemente fuerte en
~/.ssh/
:En
~/.ssh/
encontrará su clave pública comoid_rsa.pub
. Su contenido debe agregarse alauthorized_keys
archivo de su servidor transportándolo a través de un medio transportable (pen drive) o habilitando brevemente la autenticación de contraseña en el servidor, luego usándolossh-copy-id ~/.ssh/id_rsa.pub username@server
y luego deshabilitándolo nuevamente.Si elige proteger su clave con una frase de contraseña (en el primer paso), puede usar
ssh-agent
o el llavero de Ubuntu para proteger ese farase localmente para que no tenga que escribirlo todo el tiempo.fuente
Para hacer algunas adiciones:
Mac por defecto no tiene
ssh-copy-id
, tendrás que instalarlo tú mismo:encuentre más aquí: https://github.com/beautifulcode/ssh-copy-id-for-OSX
Si ha realizado un reenvío de puertos, el comando debería ser así:
Tenga en cuenta que las citas son necesarias.
fuente
Inicio de sesión remoto / copia sin dar una contraseña
Las aplicaciones
ssh
yscp
para el inicio de sesión remoto y la copia remota, respectivamente, le permiten comunicarse con un host remoto sin dar una contraseña. Esto requiere que siga un procedimiento de autenticación como el que se describe a continuación. Por cliente nos referimos a la máquina en la que está sentado y por servidor nos referimos a la máquina en la que desea iniciar sesión sin proporcionar una contraseña. Los pasos del procedimiento de autenticación son:$HOME/.ssh
.$HOME/.ssh/authorized_keys
o$HOME/.ssh/authorized_keys2
en el servidor.Hay tres tipos diferentes de protocolos de autenticación. Usted especifica el tipo cuando ejecuta ssh-keygen:
chmod 0700
asegurarse de que este archivo no sea legible para otros) e identity.pub (clave pública).ssh-keygen -t rsa
y da como resultado archivosid_rsa
(clave privada) yid_rsa.pub
(clave pública)ssh-keygen -t dsa
y da como resultado archivosid_dsa
(clave privada) yid_dsa.pub
(clave pública)Al ejecutar ssh-keygen puede confiar en las respuestas predeterminadas (lo que implica que no da una frase de contraseña). Esto hace que toda la configuración sea simple, pero también insegura.
Puede especificar el tipo de claves que utilizará una opción para ssh ;
ssh -1
fuerza el uso de claves RSA1 (versión 1 del protocolo), mientras quessh -2
obliga a ssh a probar solo claves RSA o DSA (versión 2 del protocolo). En los ejemplos a continuación, generamos e instalamos claves RSA1 y DSA en el host remoto para que tenga más flexibilidad. Puede hacer un archivo de configuración en su.ssh
directorio con la líneaEsto hace que ssh intente una conexión RSA1 (protocolo versión 1) antes de RSA / DSA (protocolo versión 2).
Usando claves RSA1
Usar claves DSA
Esto es todo lo que tiene que hacer si no utilizó una frase de contraseña al generar las claves. Puede probar la conexión ejecutando ssh $ remote y ver si puede iniciar sesión sin dar una contraseña (es posible que necesite usar
-1
o-2
como opciones para ssh ). El procedimiento puede, por supuesto, repetirse para cualquier máquina en la que desee iniciar sesión.Si utilizó una frase de contraseña, deberá ejecutar el programa
ssh-agent
para iniciar un shell especial, seguido dessh-add
para registrar su combinación de clave / frase de contraseñasshd
. Consulte las páginas de manual de estos programas para obtener más información.Un script para automatizar conexiones sin contraseña:
ssh-no-password.sh
copiado de: http://folk.uio.no/hpl/scripting/doc/ssh-no-password.html
fuente
Me gustaría agregar una respuesta para aquellos que puedan encontrar que deben ingresar la contraseña, incluso si han leído todas las respuestas aquí porque ha establecido IdentitiesOnly como sí. Y la respuesta aquí puede ahorrarle mucho tiempo para administrar múltiples claves, siendo claves para git o servidor.
Después de haber generado la clave y copiarla en el servidor:
Descubrí que no funcionaba.
Luego fui a revisar el
~/.ssh/config
archivo en el cliente, vi esto en la parte inferior:Luego agrego esto arriba:
Solo puedo iniciar sesión ingresando
ssh somename
.Luego puede agregar múltiples claves ssh usando sus nombres favoritos, y solo necesita agregar la configuración como las cuatro líneas anteriores al archivo de configuración.
Host es el nombre que le gustaría ingresar cuando conecte el servidor más tarde; HostName es la ip del servidor; Usuario es el nombre de usuario que inicia sesión en el servidor; y el archivo de identidad es el archivo donde almacena la clave que ha generado.
fuente