Je veux pouvoir me connecter à une télécommande via ssh sans avoir à entrer le mot de passe tout le temps.
- Comment puis-je le configurer?
- Une commande différente est-elle requise pour exécuter une session sans mot de passe?
ssh
authentication
Oxwivi
la source
la source
Réponses:
Répondre
Exécutez cette commande:
Ensuite, vous devrez copier la nouvelle clé sur votre serveur :
Une fois la clé copiée, ssh dans la machine normalement:
Vous pouvez maintenant vous connecter sans saisir de mot de passe de la machine sur laquelle vous avez exécuté les commandes.
Exemple
Explication
Cela suppose que vous puissiez déjà vous connecter à votre serveur via SSH.
Vous devrez générer une paire de clés SSH qui vous permettra de vous identifier sans utiliser de mot de passe. Vous pouvez choisir de protéger les clés avec un mot de passe si vous le souhaitez, mais vous pouvez laisser ce champ vide pour permettre un accès SSH sans mot de passe.
ssh-keygen
cela va créer unid_rsa
etid_rsa.pub
fichier. Lepub
fichier est ce qui se passe sur les serveurs, la clé privée (id_rsa
) est ce qui vous reste et est la façon dont vous vous identifiez.ssh-copy-id user@server
remplaçant l'utilisateur par votre utilisateur distant et par le serveur par le nom DNS ou l'adresse IP de la machine. Il vous demandera votre mot de passe SSH, entrez-le et si tout est terminé, vous pourrez accéder à la machinessh user@server
sans avoir besoin d'un mot de passe.Références
la source
ssh-keygen
suivez les instructions à l'écran, puis dessh-copy-id user@server
remplacer utilisateur par votre utilisateur distant et par serveur sur la machine distantessh-copy-id "[email protected] -p 1234"
.Tapez les commandes suivantes:
ssh-keygen
Appuyez sur la Entertouche jusqu'à ce que vous obteniez l'invite
ssh-copy-id -i root@ip_address
(Il vous sera demandé une fois le mot de passe du système hôte)
ssh root@ip_address
Vous devriez maintenant pouvoir vous connecter sans mot de passe.
la source
La façon dont je le fais habituellement est la suivante:
ssh-keygen -t rsa
(Lorsque vous êtes invité à entrer un mot de passe, laissez-le vide)
Ensuite:
cat ~/.ssh/id_rsa.pub | ssh username@hostname 'cat >> .ssh/authorized_keys'
(Cela nécessite que le dossier .ssh soit dans le répertoire de base du nom d’hôte ciblé, avec le fichier authorised_keys)
Bien sûr, remplacez le nom d'utilisateur par le nom d'utilisateur souhaité, et le nom d'hôte par le nom d'hôte ou l'adresse IP souhaité.
Après cela, lancez simplement SSH dans cette boîte, comme vous en avez l'habitude.
la source
touch
etchmod
dans la réponse de Rinzwind?.ssh/authorized_keys
fichier à 0600 ou cela ne fonctionnera pasJe l'utilise normalement
sshpass
pour ça, l'installer avecsudo apt-get install sshpass
et l'utiliser comme çala source
sshpass
sont un hack très utile dans les cas où vous ne pouvez pas changer la méthode d'authentification sur le serveur distant!https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-password-authentication
la source
PasswordAuthentication no
affecte- t-il tous les utilisateurs? Sinon, comment puis-je le désactiver pour les utilisateurs normaux tout en le laissant inchangé pour root pendant que je le teste? Je ne veux pas vraiment le faire et m'enfermer complètement.Permission denied (publickey).
avecPasswordAuthentication no
. Que dois-je faire? Est-ce que je changePasswordAuthentication no
sur un autre hôte?Cette solution est spécialement pour les utilisateurs à l' aide de Windows pour ssh dans leurs machines distantes , y compris des images de nuages sur nuage AWS et GCE Nuage
Avertissement
Récemment utilisé cette solution pour la connexion à distance de nouvelles images VM déployées sur GCE.
Les outils utilisés:
puttygen
puttygen téléchargerwinscp
winscp téléchargerÉtapes à suivre:
Comment faire:
1. Générer une clé / paire ou utiliser une clé privée existante
Si vous possédez une clé privée:
Ouvrez
puttygen
, appuyez sur le bouton Charger et sélectionnez votre*.pem
fichier de clé privée ( ).Si vous ne possédez pas de clé privée:
puttygen
,(de source 1, lien donné ci-dessous)
2. Créez un nouveau fichier 'allowed_keys' (avec
notepad
)Copiez vos données de clé publique à partir de la section "Clé publique pour le collage dans le fichier OpenSSH allowed_keys" du générateur de clé PuTTY, puis collez les données de clé dans le
authorized_keys
fichier.Assurez-vous qu'il n'y a qu'une seule ligne de texte dans ce fichier.
3. Télécharger la clé sur le serveur Linux
Téléchargez le fichier allowed_keys dans le répertoire de base de la machine distante.
4. Définir les autorisations appropriées
Make
.ssh
directory (si non existant)Copier le
authorized_keys
fichier dans le.ssh
répertoire.(cela remplacera tout
authorized_keys
fichier existant , prenez-en note).Si le fichier existait, ajoutez simplement le contenu de ce fichier au fichier existant.
Exécutez les commandes pour définir les autorisations:
Vous pourrez maintenant entrer
ssh
dans une machine distante sans entrer les informations d'identification à chaque fois.Lectures complémentaires:
Génération et téléchargement de clés SSH sous Windows
Authentification par certificats de clés OpsenSSH PEM PUB CRT
la source
Si vous créez une paire de clés publique / principale et que vous vous connectez à l'aide de notre clé publique nouvellement créée, vous n'avez pas besoin de saisir votre mot de passe. Selon la configuration de votre porte-clés et / ou de votre agent ssh, vous devrez peut-être protéger votre clé avec une phrase secrète.
Voici un des nombreux guides pratiques pour vous. Pour la sécurité de cette méthode, il est d’une importance cruciale que la clé privée générée reste privée! Vous ne devriez jamais le partager avec qui que ce soit ni en permettre l'accès de quelque manière que ce soit.
Cette commande génère une clé raisonnablement forte dans
~/.ssh/
:Dans
~/.ssh/
vous trouverez votre clé publique commeid_rsa.pub
. Son contenu doit être ajouté auauthorized_keys
fichier de votre serveur en le transportant via un support transportable (clé USB) ou en activant brièvement l’authentification du mot de passe sur le serveur, puis en l’utilisantssh-copy-id ~/.ssh/id_rsa.pub username@server
puis en le désactivant à nouveau.Si vous avez choisi de sécuriser votre clé avec une phrase secrète (dans la première étape), vous pouvez utiliser
ssh-agent
le trousseau de clés Ubuntu pour sécuriser ce processus localement afin de ne pas avoir à le taper tout le temps.la source
Pour faire quelques ajouts:
Mac par défaut n'a pas
ssh-copy-id
, vous devrez l'installer vous-même:trouvez plus ici: https://github.com/beautifulcode/ssh-copy-id-for-OSX
si vous avez effectué un transfert de port, la commande devrait être comme ceci:
notez que les guillemets sont nécessaires.
la source
Connexion / copie à distance sans mot de passe
Les applications
ssh
etscp
pour la connexion à distance et la copie à distance, respectivement, vous permettent de communiquer avec un hôte distant sans donner de mot de passe. Cela nécessite que vous suiviez une procédure d'authentification similaire à celle décrite ci-dessous. Par client, nous voulons dire la machine sur laquelle vous êtes assis et par serveur, nous voulons dire la machine à laquelle vous voulez vous connecter sans donner de mot de passe. Les étapes de la procédure d'authentification sont les suivantes:$HOME/.ssh
.$HOME/.ssh/authorized_keys
ou$HOME/.ssh/authorized_keys2
au serveur.Il existe trois types différents de protocoles d'authentification. Vous spécifiez le type lors de l'exécution de ssh-keygen:
chmod 0700
à prendre pour que ce fichier ne soit pas lisible par d’autres) et identity.pub (clé publique).ssh-keygen -t rsa
et aboutit à des fichiersid_rsa
(clé privée) etid_rsa.pub
(clé publique)ssh-keygen -t dsa
et aboutit à des fichiersid_dsa
(clé privée) etid_dsa.pub
(clé publique)Lorsque vous exécutez ssh-keygen, vous pouvez vous fier aux réponses par défaut (ce qui implique que vous ne fournissez pas de phrase secrète). Cela simplifie l’ensemble de la configuration, mais est également source d’insécurité.
Vous pouvez spécifier le type de clés à utiliser par une option de ssh ;
ssh -1
les forces de l' utilisation RSA1 clés (version 1 du protocole), alors que lesssh -2
forces ssh à essayer en RSA ou DSA clés uniquement (version 2 du protocole). Dans les exemples ci-dessous, nous générons et installons des clés RSA1 et DSA sur l'hôte distant de manière à vous offrir davantage de flexibilité. Vous pouvez créer un fichier de configuration dans votre.ssh
répertoire avec la ligneCela oblige ssh à essayer une connexion RSA1 (version 1 du protocole) avant RSA / DSA (version 2 du protocole).
Utiliser les clés RSA1
Utilisation de clés DSA
C’est tout ce que vous avez à faire si vous n’avez pas utilisé de phrase secrète lors de la génération des clés. Vous pouvez tester la connexion en exécutant ssh $ remote et voir si vous pouvez vous connecter sans donner de mot de passe (vous devrez peut-être utiliser
-1
ou utiliser-2
les options de ssh ). Bien entendu, la procédure peut être répétée pour tout ordinateur auquel vous souhaitez vous connecter.Si vous avez utilisé une phrase secrète, vous devez exécuter le programme
ssh-agent
pour démarrer un shell spécial, puisssh-add
enregistrer la combinaison clé / phrase secrète avecsshd
. Voir les pages de manuel de ces programmes pour plus d'informations.Un script pour automatiser les connexions sans mot de passe:
ssh-no-password.sh
copié de: http://folk.uio.no/hpl/scripting/doc/ssh-no-password.html
la source
J'aimerais ajouter une réponse pour ceux qui pourraient trouver qu'ils devraient entrer le mot de passe même s'ils ont lu toutes les réponses ici parce que vous avez défini IdentitiesOnly sur yes. Et la réponse ici peut vous faire économiser beaucoup de temps pour gérer plusieurs clés, clés pour git ou serveur.
Après avoir généré et copié la clé sur le serveur:
J'ai trouvé que ça n'a pas marché.
Puis je suis allé vérifier le
~/.ssh/config
dossier du client, j'ai vu ceci en bas:Puis j'ajoute ceci ci-dessus:
Je peux juste me connecter en entrant
ssh somename
.Ensuite, vous pouvez ajouter plusieurs clés ssh en utilisant vos noms préférés et il vous suffit d’ajouter les paramètres tels que les quatre lignes ci-dessus au fichier de configuration.
Host est le nom que vous souhaitez entrer lorsque vous connectez le serveur ultérieurement. le nom d'hôte est l'adresse IP du serveur; Utilisateur est le nom d'utilisateur que vous connectez au serveur. et le fichier d'identité est le fichier dans lequel vous stockez la clé que vous avez générée.
la source