Acabo de crear un nuevo servidor virtual de Ubuntu y estoy en proceso de fortalecerlo para uso en producción. Actualmente tengo una cuenta raíz. Quiero hacer lo siguiente:
- Cree un nuevo usuario (llamemos
jimpor el resto de esto). Quiero que tengan un/home/directorio. - Dar
jimacceso SSH. - Permitir
jimasuarraigar, pero no realizarsudooperaciones. - Desactive el acceso raíz SSH.
- Mueva SSHd a un puerto no estándar para ayudar a detener los ataques brutos.
Mi problema radica en los dos primeros elementos. Ya he encontrado, useraddpero por alguna razón, no puedo iniciar sesión como un usuario creado con él a través de SSH. ¿Necesito vencer a SSHd para permitir esto?

/etc/nologinarchivo pero está vacío. Lo eliminé y reinicié ssh, pero todavía respondePermission denied, please try again.cuando intento iniciar sesión.Respuestas:
Editar (como root)
/etc/ssh/sshd_config. Agregue lo siguiente:Port 1234hace que SSH escuche en el puerto 1234. Puede usar cualquier puerto no utilizado del 1 al 65535. Se recomienda elegir un puerto privilegiado (puerto 1-1024) que solo puede usar la raíz. Si su demonio SSH deja de funcionar por alguna razón, una aplicación no autorizada no puede interceptar la conexión.PermitRootLoginno permite el inicio de sesión de root directo.AllowUsers jimpermite al usuariojiminiciar sesión a través de SSH. Si no tiene que iniciar sesión desde cualquier lugar, puede hacerlo más seguro restringiendo a Jim a una dirección IP (reemplace 1.2.3.4 con su dirección IP real):Los cambios en el archivo de configuración
/etc/ssh/sshd_configno se aplican de inmediato, para volver a cargar la configuración, ejecute:fuente
rootinicio de sesión, sin embargo, (tal vez usted todavía la configuración del servidor), debe establecerPermitRootLoginayesy también añadirrootaAllowUsers.useradd -m -G sudo,adm -s /bin/bash mecharokypasswd mecharokAllowUsers username1,username2para restringir los inicios de sesión SSH a esos usuarios. Asegúrese de quesshdse vuelve a cargar. Si esto no ayuda, cree una nueva pregunta.SSH es muy exigente con el directorio y los permisos de archivo. Asegúrate de eso:
Copie su clave pública en el archivo autorizado_claves.
NO es necesario agregar el usuario a / etc / ssh / ssh_config.
fuente
~./sshcomo root y nunca le di al usuario la propiedad./root/.ssh/authorized_keyslugar de/home/bob/.ssh/authorized_keys.ssh_config. Configurar ese directorio y archivo fue suficiente.sudo su --login {user}) y ejecutarssh-keygen-> La carpeta ".ssh", la clave + certificado y los permisos están completos. Simplemente cree autorizadas_claves según sus instrucciones.Habrá pistas sobre
/var/log/auth.logpor qué SSH (o PAM) está rechazando el intento de inicio de sesión. Se pueden encontrar pistas adicionales utilizando la-vopción con el cliente ssh . Varias situaciones comunes, algunas mencionadas en las otras respuestas:man passwd, intente restablecer la contraseña o verificar el contenido de/etc/shadow)./etc/ssh/sshd_configestá configurado para no permitir el inicio de sesión (DenyUsers,AllowUsers,PasswordAuthentication,PubkeyAuthentication,UsePAMetc, verman sshd_config)./etc/shells./etc/ssh,/home/jim/.ssh,/home/jim/.ssh/*, etc.También recomendaría usar adduser (en lugar de useradd ) para agregar nuevos usuarios; es un poco más amigable con respecto a varias configuraciones de cuenta predeterminadas.
Mientras el usuario no sea parte del
admingrupo, no podrá sudo a la raíz. Para que utilicen Do , que tendrá que establecer una contraseña de root (passwd root), después de lo cual recomiendo configuraciónPermitRootLogin=noen/etc/ssh/sshd_config.fuente
Podría estar equivocado, pero siempre tengo que instalar el demonio del servidor antes de poder conectarme (al menos en el escritorio) ssh está instalado de forma predeterminada, pero eso es solo el cliente
este comando instala el servidor
sudo apt-get install openssh-serverPuede cambiar el puerto y detener el inicio de sesión raíz editando
/etc/ssh/sshd_configSin embargo, esto requiere que reinicie el servicio.
sudo service ssh restartfuente
sudo /etc/init.d/ssh reload, pero buena información de todos modos.Jim no tendrá acceso SSH hasta que haya establecido una contraseña. Como root ejecutar:
Si este comando devuelve un "!" entonces el inicio de sesión está deshabilitado para esta cuenta. Ejecutar
passwd jimcomo root le solicitará una cadena de contraseña nueva y confirmada, después de lo cual el comando grep anterior debería devolver una cadena hash que representa la contraseña para jim.También asegúrese de verificar que jim tenga un shell de inicio de sesión, establecido de manera predeterminada, y un directorio de inicio que exista.
Tenga en cuenta la publicación de lekensteyn para obtener información sobre cómo modificar la configuración del servidor SSH.
fuente
En mi caso, tenía un grupo al que se le permitía el acceso y el usuario no era parte de él. Esto lo resolvió para mí.
Usando el ejemplo anterior con el usuario
jimy asuma el miembro del grupojimcomo es solo un grupo (emita elgroupscomando mientras está conectadojimpara encontrar los grupos de los que forma parte). En mi/etc/ssh/sshd_configarchivo teníaAllowGroups sshusersentrada y, por lo tanto, necesitaba agregarjimalsshusersgrupo. A continuación se muestra cómo se lograría esto:Reemplace su grupo y usuario según corresponda para su configuración.
fuente
jimcomo usuario ficticio para ayudar a proporcionar contexto. El artículo aquí lo explica bien.Puede haber algunas instancias en las que
PasswordAuthenticationesté deshabilitado de forma predeterminada.Compruebe
/etc/ssh/sshd_configy asegúrese de que elPasswordAuthenticationatributo esté establecido enyes.fuente
@Lekensteyn No puedo dejar un comentario a la respuesta de la pregunta porque no tengo reputación, pero intenté agregar
a mi archivo / etc / ssh / sshd_config y ahora ya no puedo usar ssh tanto con mi UserUser existente como con el newUser.
fuente
AllowUsers existingUser@* newUser@*