web-dev-qa-db-fra.com

Connexion à distance en tant que root dans Ubuntu

Dans mon projet, je dois installer un paquet à distance. Si je dois me connecter à debian, je dis: 

$ ssh root@remotehostname
root@remotehostname's password: 

il se connecte avec succès. 

J'ai connecté en Ubuntu en utilisant directement

 $ root@remotehostname
 root@remotehostname's password:

c'est jeter un message d'erreur dans

Permission denied, please try again.

Comment résoudre ce problème?

12
Reegan Miranda

Documentation Ubuntu dit:

Par défaut, le mot de passe du compte racine est verrouillé dans Ubuntu.

Il dit aussi:

S'il vous plaît gardez à l'esprit, un nombre important d'utilisateurs d'Ubuntu sont nouveaux pour Linux. Il existe une courbe d'apprentissage associée à tout système d'exploitation et à de nombreux nouveaux les utilisateurs essaient de prendre des raccourcis en activant le compte root, en se connectant en tant que root et changer la propriété des fichiers système.

Il explique longuement pourquoi cela a été fait de cette façon.


Activer le compte root:

Sudo -i

Pour activer le compte racine (c.-à-d. Définir un mot de passe), utilisez: 

Sudo passwd root

À utiliser à vos risques et périls!

La connexion à X en tant que racine peut causer de très graves problèmes. Si vous croyez vous avez besoin d’un compte root pour effectuer une action donnée, veuillez consulter les canaux de soutien officiels d'abord, pour s'assurer qu'il n'y a pas de meilleure alternative.

14
devnull

vérifiez le /etc/ssh/sshd_config si le configure PermitRootLogin yes ci-dessous # Authentication:. Si ce n'est pas yes, cela ne permet pas de se connecter en tant que root.

vous pouvez le changer en yes.

Ensuite, redémarrez le service ssh pour appliquer les modifications: Sudo service sshd restart

16
vvy

N'activez pas le compte root. Ne définissez pas de mot de passe pour le compte root.

Une meilleure solution consiste à autoriser la connexion root à l'aide de l'authentification par clé publique et non par mot de passe. Le raisonnement est expliqué dans les archives de la liste de diffusion Debian.

  1. Ouvrez /etc/ssh/sshd_config et vérifiez si PermitRootLogin est défini sur yes. Sinon, réglez-le sur oui et redémarrez ssh avec Sudo service ssh restart

  2. Créez le répertoire .ssh dans le répertoire principal de la racine s'il n'existe pas et assurez-vous qu'il dispose d'autorisations strictes:

    Sudo -i mkdir -p .ssh
    Sudo -i chmod 700 .ssh
    
  3. Créez une paire de clés publique/privée dans le système à partir duquel vous souhaitez vous connecter.

  4. Copiez votre clé publique sur votre compte d'utilisateur habituel.

  5. Ajoutez votre clé publique au .ssh/authorized_keys de la racine et assurez-vous que le fichier dispose d'autorisations strictes:

    cat id_rsa.pub | Sudo -i tee -a .ssh/authorized_keys
    Sudo -i chmod 600 .ssh/authorized_keys
    

Avec cette configuration, vous devriez pouvoir vous connecter en tant que root avec votre clé privée.

Si vous avez déjà activé le compte root, assurez-vous de le désactiver maintenant:

Sudo passwd -l root
11
janos

Vous pouvez définir un mot de passe pour root, mais cela n'est pas recommandé et pourrait entraîner un risque pour la sécurité. Mais si vous avez un compte utilisateur sur le système cible qui dispose des informations d’identité Sudo, vous pouvez vous connecter en tant qu’utilisateur:

ssh user@remotehostname
user@remotehostname's password:

et faites ensuite ce que vous voulez avec Sudo ou obtenez un shell racine de la manière recommandée:

user@remotehostname$ Sudo su
Password:
root@remotehostname#

et puis faites votre ménage. Au lieu de «Sudo su», vous pouvez également utiliser «Sudo -i», qui est équivalent, ou «Sudo -s», qui conserve l'environnement actuel.

Voir Documentation Ubuntu Sudo/Root

4
h1618

éditez votre/etc/sshd_config en faisant:

Sudo /etc/sshd_config

recherchez une ligne ayant PermitRootLogin dans la section Authentication et décommentez PermitRootLogin ou définissez PermitRootLogin yes. Ou simplement ajouter cette ligne à la fin du fichier:

PermitRootLogin yes

Ensuite, vous allez redémarrer le démon ssh

/etc/init.d/ssh restart 

ou

service ssh restart

en fonction de votre distribution linuxVous allez maintenant vous connecter via ssh avec votre compte root Avertissement: pour des raisons de sécurité, ceci n'est pas recommandé. Ce que vous pouvez faire est de vous connecter avec n'importe quel autre compte via ssh et dans votre session utilisateur, faites:

Sudo command

ou simplement: 

Sudo su

continuer la session sous votre compte root

3
Chamullo
ssh -l user localhost "Sudo whoami"

résultats:

root

Tant que: 

  1. L'hôte distant permet à l'utilisateur qui se connecte de pouvoir utiliser Sudo sans demander de mot de passe supplémentaire.

  2. ssh-copy-id a été exécuté ou les clés correctes ont été copiées sur l'hôte distant afin que l'utilisateur puisse se reconnecter sans mot de passe via ssh

Tout ce qui est différent c'est que Word Sudo a été ajouté avant l'exécution de la commande

S'il y a des problèmes de sécurité avec les clés, etc., vous pouvez jeter un coup d'œil à la langue appelée expect - en utilisant un script expect, vous serez en mesure de ssh/telnet, quel qu'il soit, vers un hôte distant et d'envoyer les mots de passe, etc. en conséquence. 

2
Vahid

Je pense que la seule fois où je me suis fatigué de me connecter à root était la première fois que j'utilisais AWS EC2 et que j'essayais de l'utiliser depuis longtemps parce que je savais que cela existait. Le nom d'utilisateur ec2-user. 

2
stink
  1. Editez le fichier sshd_config vi /etc/ssh/sshd_config
  2. Commentez #PermitRootLogin without-password sous Authentification:
  3. insérer ci-dessous PermitRootLogin yes
  4. Enregistrez le fichier.
  5. Redémarrez le service ssh service ssh restart
1
RoyEp

Par défaut, le mot de passe du compte racine est verrouillé sur des systèmes Debian tels qu'Ubuntu:

Basculer vers l'utilisateur du compte root:

Sudo -i;

Maintenant, définissez le mot de passe du compte root:

Sudo passwd;

Ajouter simplement un mot de passe pour root ne suffit pas. 

Les connexions ssh entrantes doivent être activées comme suit:

Éditez /etc/ssh/sshd_config et trouvez la ligne suivante:

PermitRootLogin without-password

Il suffit de remplacer le mot without-password par yes, comme dans la ligne suivante:

PermitRootLogin yes

Puis redémarrez SSH:

Sudo service ssh restart;

Enfin, redémarrez le système:

Sudo reboot;

Terminé !!!

0
Pratik Patil
  1. Editez le fichier /etc/ssh/sshd_config et modifiez la ligne indiquant «PermitRootLogin à commandes forcées uniquement» en «PermitRootLogin sans mot de passe».

  2. Redémarrez le serveur sshd avec «service sshd restart».

  3. Editez le fichier /root/.ssh/authorized_keys. Ce fichier doit avoir une seule ligne. Il commence par “echo” ou “commande… sommeil 10;” puis vous pouvez voir “ssh-rsa [grosse clé longue]”. Supprimez le texte du début de la ligne jusqu'à l'endroit où il est écrit «ssh-rsa».

SSH votre machine en utilisant root avec votre paire de clés

0
Ali Azhar