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
jim
por el resto de esto). Quiero que tengan un/home/
directorio. - Dar
jim
acceso SSH. - Permitir
jim
asu
arraigar, pero no realizarsudo
operaciones. - 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, useradd
pero 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/nologin
archivo 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 1234
hace 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.PermitRootLogin
no permite el inicio de sesión de root directo.AllowUsers jim
permite al usuariojim
iniciar 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_config
no se aplican de inmediato, para volver a cargar la configuración, ejecute:fuente
root
inicio de sesión, sin embargo, (tal vez usted todavía la configuración del servidor), debe establecerPermitRootLogin
ayes
y también añadirroot
aAllowUsers
.useradd -m -G sudo,adm -s /bin/bash mecharok
ypasswd mecharok
AllowUsers username1,username2
para restringir los inicios de sesión SSH a esos usuarios. Asegúrese de quesshd
se 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
~./ssh
como root y nunca le di al usuario la propiedad./root/.ssh/authorized_keys
lugar 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.log
por qué SSH (o PAM) está rechazando el intento de inicio de sesión. Se pueden encontrar pistas adicionales utilizando la-v
opció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_config
está configurado para no permitir el inicio de sesión (DenyUsers
,AllowUsers
,PasswordAuthentication
,PubkeyAuthentication
,UsePAM
etc, 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
admin
grupo, 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=no
en/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-server
Puede cambiar el puerto y detener el inicio de sesión raíz editando
/etc/ssh/sshd_config
Sin embargo, esto requiere que reinicie el servicio.
sudo service ssh restart
fuente
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 jim
como 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
jim
y asuma el miembro del grupojim
como es solo un grupo (emita elgroups
comando mientras está conectadojim
para encontrar los grupos de los que forma parte). En mi/etc/ssh/sshd_config
archivo teníaAllowGroups sshusers
entrada y, por lo tanto, necesitaba agregarjim
alsshusers
grupo. A continuación se muestra cómo se lograría esto:Reemplace su grupo y usuario según corresponda para su configuración.
fuente
jim
como usuario ficticio para ayudar a proporcionar contexto. El artículo aquí lo explica bien.Puede haber algunas instancias en las que
PasswordAuthentication
esté deshabilitado de forma predeterminada.Compruebe
/etc/ssh/sshd_config
y asegúrese de que elPasswordAuthentication
atributo 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@*