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:
- Créez un nouvel utilisateur (appelons-le
jim
pour le reste). Je veux qu'ils aient un/home/
répertoire. - Donner un
jim
accès SSH. - Autoriser
jim
àsu
rooter mais ne pas effectuer d'sudo
opérations. - Désactivez l'accès root SSH.
- Déplacez SSHd sur un port non standard pour aider à arrêter les attaques brutales.
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?
/etc/nologin
fichier mais il est vide. Je l'ai supprimé et redémarré ssh, mais il ne répond quePermission denied, please try again.
lorsque j'essaie de me connecter.Réponses:
Modifier (en tant que root)
/etc/ssh/sshd_config
. Ajoutez ce qui suit:Port 1234
SSH écoute sur le port 1234. Vous pouvez utiliser n’importe quel port inutilisé de 1 à 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
interdit la connexion directe à la racine.AllowUsers jim
permet à l'utilisateurjim
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):Les modifications apportées au fichier de configuration ne
/etc/ssh/sshd_config
sont pas appliquées immédiatement. Pour recharger la configuration, exécutez:la source
root
Toutefois, si vous souhaitez vous connecter (vous configurez peut-être toujours le serveur), vous devez définirPermitRootLogin
suryes
et ajouterroot
des élémentsAllowUsers
.useradd -m -G sudo,adm -s /bin/bash mecharok
etpasswd mecharok
AllowUsers username1,username2
de limiter les connexions SSH à ces utilisateurs. Assurez-vous qu'ilsshd
est rechargé. Si cela ne vous aide pas, veuillez créer une nouvelle question.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.
Il n'est PAS nécessaire d'ajouter l'utilisateur à / etc / ssh / ssh_config.
la source
~./ssh
tant que root et je n'ai jamais donné la propriété à l'utilisateur./root/.ssh/authorized_keys
au lieu de/home/bob/.ssh/authorized_keys
.ssh_config
. Configurer ce répertoire et ce fichier était suffisant.sudo su --login {user}
) et de l'exécuterssh-keygen
-> Le dossier ".ssh", la clé + le cert et les autorisations sont terminés. Il suffit de créer allowed_keys selon vos instructions.Il y aura des indices sur la
/var/log/auth.log
raison pour laquelle SSH (ou PAM) refuse la tentative de connexion. Des indices supplémentaires peuvent être trouvés en utilisant l'-v
option 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 de vérifier le contenu de/etc/shadow
)./etc/ssh/sshd_config
est configuré pour interdire la connexion (DenyUsers
,AllowUsers
,PasswordAuthentication
,PubkeyAuthentication
,UsePAM
etc., voirman sshd_config
)./etc/shells
./etc/ssh
,/home/jim/.ssh
,/home/jim/.ssh/*
, etc.Je vous recommande également d'utiliser adduser (au lieu de useradd ) 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
admin
groupe, il ne sera pas en mesure de se connecter à la racine. Pour eux d'utiliser su , vous devez définir un mot de passe root (passwd root
), après quoi je recommande cadrePermitRootLogin=no
dans/etc/ssh/sshd_config
.la source
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
la source
sudo /etc/init.d/ssh reload
, mais une bonne information quand même.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:
Si cette commande retourne un "!" caractère alors la connexion est désactivée pour ce compte. L'exécution en
passwd jim
tant que root vous invitera à entrer 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.
la source
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.
En utilisant l'exemple ci-dessus avec l'utilisateur
jim
et supposez que le membre du groupejim
est un groupe (groups
commande d' émission tout en étant connectéjim
afin de rechercher les groupes dont vous faites partie). Dans mon/etc/ssh/sshd_config
dossier, j'avais uneAllowGroups sshusers
entrée et devais donc ajouterjim
ausshusers
groupe. Voici comment cela serait accompli:Remplacez votre groupe et votre utilisateur en fonction de votre configuration.
la source
jim
tant qu'utilisateur factice pour aider à fournir un contexte. l'article ici l' explique bien.Il est possible que certaines situations
PasswordAuthentication
soient désactivées par défaut.Veuillez vérifier
/etc/ssh/sshd_config
et assurez-vous que l'PasswordAuthentication
attribut est défini suryes
.la source
@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
dans mon fichier / etc / ssh / sshd_config et je ne peux plus utiliser SSH avec mon utilisateur existant ou avec l’utilisateur newUser.
la source
AllowUsers existingUser@* newUser@*