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?
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.
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
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.
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
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
Créez une paire de clés publique/privée dans le système à partir duquel vous souhaitez vous connecter.
Copiez votre clé publique sur votre compte d'utilisateur habituel.
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
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.
é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
ssh -l user localhost "Sudo whoami"
résultats:
root
Tant que:
L'hôte distant permet à l'utilisateur qui se connecte de pouvoir utiliser Sudo sans demander de mot de passe supplémentaire.
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.
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.
vi /etc/ssh/sshd_config
#PermitRootLogin without-password
sous Authentification:PermitRootLogin yes
service ssh restart
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é !!!
Editez le fichier /etc/ssh/sshd_config
et modifiez la ligne indiquant «PermitRootLogin à commandes forcées uniquement» en «PermitRootLogin sans mot de passe».
Redémarrez le serveur sshd avec «service sshd restart
».
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