Je viens de créer un nouveau serveur virtuel Ubuntu et je suis en train de le renforcer pour une utilisation en production. J'ai actuellement un compte root. Je veux faire ce qui suit:
jim
pour le reste). Je veux qu’ils aient un répertoire /home/
.jim
l'accès SSH.jim
à su
à root mais n'effectuez pas d'opération Sudo
name__.Mon problème réside dans les deux premiers éléments. J'ai déjà trouvé useradd
mais, pour une raison quelconque, je ne peux pas me connecter en tant qu'utilisateur créé avec SSH. Dois-je battre SSHd pour permettre cela?
Modifier (en tant que root) /etc/ssh/sshd_config
. Ajoutez ce qui suit:
Port 1234
PermitRootLogin no
AllowUsers jim
Port 1234
provoque l'écoute de SSH sur le port 1234. Vous pouvez utiliser n'importe quel port inutilisé compris entre 1 et 65535. Il est recommandé de choisir un port privilégié (port 1-1024) qui ne peut être utilisé que par root. Si votre démon SSH cesse de fonctionner pour une raison quelconque, une application non fiable ne peut pas intercepter la connexion.
PermitRootLogin
n'autorise pas la connexion directe à la racine.
AllowUsers jim
permet à l'utilisateur jim
de se connecter via SSH. Si vous ne devez pas vous connecter de partout, vous pouvez le rendre plus sûr en limitant jim à une adresse IP (remplacez 1.2.3.4 par votre adresse IP actuelle):
AllowUsers [email protected]
Les modifications apportées au fichier de configuration /etc/ssh/sshd_config
ne sont pas appliquées immédiatement. Pour recharger la configuration, exécutez:
Sudo service ssh reload
SSH est très pointilleux sur les permissions des répertoires et des fichiers. Sois sûr que:
Copiez votre clé publique dans le fichier allowed_keys.
Sudo chown -R username:username /home/username/.ssh
Sudo chmod 0700 /home/username/.ssh
Sudo chmod 0600 /home/username/.ssh/authorized_keys
Il y a NO besoin d'ajouter l'utilisateur à/etc/ssh/ssh_config.
/var/log/auth.log
contiendra des indices expliquant pourquoi SSH (ou PAM) refuse la tentative de connexion. Des indices supplémentaires peuvent être trouvés en utilisant l'option -v
avec le client ssh. Plusieurs situations courantes, dont certaines mentionnées dans les autres réponses:
man passwd
, essayez de réinitialiser le mot de passe ou vérifiez le contenu de /etc/shadow
)./etc/ssh/sshd_config
est configuré pour interdire la connexion (DenyUsers
, AllowUsers
, PasswordAuthentication
, PubkeyAuthentication
, UsePAM
etc., voir man sshd_config
)./etc/shells
./etc/ssh
, /home/jim/.ssh
, /home/jim/.ssh/*
, etc.Je vous recommande également d'utiliser adduser (au lieu de seradd) pour ajouter de nouveaux utilisateurs; il est un peu plus convivial sur divers paramètres de compte par défaut.
Tant que l'utilisateur ne fait pas partie du groupe admin
, il ne pourra pas Sudo accéder à la racine. Pour qu’ils puissent utiliser s, vous devez définir un mot de passe root (passwd root
), après quoi je recommande de définir PermitRootLogin=no
dans /etc/ssh/sshd_config
.
Je peux me tromper, mais je dois toujours installer le démon du serveur avant de pouvoir me connecter (au moins sur le bureau). Ssh est installé par défaut, mais ce n'est que le client.
cette commande installe le serveur
Sudo apt-get install openssh-server
Vous pouvez modifier le port et arrêter la connexion root en modifiant
/etc/ssh/sshd_config
Cela nécessite cependant de redémarrer le service.
Sudo service ssh restart
Jim n'aura pas d'accès SSH jusqu'à ce que vous ayez défini un mot de passe. En tant que root, exécutez:
grep -i "jim" /etc/shadow | awk -F':' '{ print $2 }'
Si cette commande retourne un "!" caractère alors la connexion est désactivée pour ce compte. L'exécution de passwd jim
en tant que root vous demandera une nouvelle chaîne de mot de passe confirmée, après quoi la commande grep ci-dessus devrait renvoyer une chaîne hachée représentant le mot de passe de jim.
Assurez-vous également que jim dispose d'un shell de connexion défini par défaut et d'un répertoire de base existant.
Veuillez noter le message de lekensteyn pour plus d'informations sur la modification des paramètres du serveur SSH.
Dans mon cas, j'avais un groupe auquel l'accès était autorisé et l'utilisateur n'en faisait pas partie. Cela a résolu le problème pour moi.
Utilisez l'exemple ci-dessus avec l'utilisateur jim
et supposez que vous êtes membre du groupe jim
en tant que groupe (émettez la commande groups
alors que vous êtes connecté en tant que jim
pour rechercher les groupes auxquels vous appartenez). Dans mon fichier /etc/ssh/sshd_config
, j'avais l'entrée AllowGroups sshusers
et devais donc ajouter jim
au groupe sshusers
name__. Voici comment cela serait accompli:
usermod -a -G sshusers jim
Remplacez votre groupe et votre utilisateur en fonction de votre configuration.
@Lekensteyn Je ne peux pas laisser de commentaire à la réponse à la question car je n'ai pas la réputation - mais j'ai essayé d'ajouter
AllowUsers existingUser,newUser
dans mon fichier/etc/ssh/sshd_config et je ne peux plus utiliser SSH avec mon utilisateur existant ou avec l’utilisateur newUser.
Il peut y avoir des cas où le PasswordAuthentication
est désactivé par défaut.
Veuillez vérifier /etc/ssh/sshd_config
et vous assurer que l'attribut PasswordAuthentication
est défini sur yes
name__.