J'ai un serveur auquel je dois accéder fréquemment via ssh, car je calcule dessus. Maintenant, le centre de calcul interdit explicitement les clés SSH car elles sont "peu sûres". Ils estiment que taper mon mot de passe, sur un clavier, à chaque fois, possible devant d'autres humains, est un moyen beaucoup plus sûr de se connecter.
À présent; Je ne peux pas changer d'avis (j'ai essayé).
Existe-t-il un moyen de stocker temporairement au moins temporairement les mots de passe SSH, de la même manière que GIT peut stocker les mots de passe dans un cache pendant une durée définie?
the computing center explicitly forbids SSH-keys because they are "insecure"
- mon avis sur le sujet? Trouvez un nouvel hôte serveur, car le vôtre est évidemment inepte.publickey
authentification présente d'autres avantages . Si vous désactivez l'password
authentification sur le serveur, vous empêchez tous ces attaquants d'essayer de deviner les mots de passe. Et si un attaquant tente une attaque mitm contre un client qui n'a pas encore stocké la clé publique du serveur, vous êtes beaucoup mieux protégépublickey
que si vous utilisiez l'password
authentification.Réponses:
Réutilisation de la connexion
SSHv2 permet à la même connexion authentifiée d'établir plusieurs «canaux» - shell interactif, commande par lots, SFTP, ainsi que les autres, tels que le transfert d'agent ou le transfert TCP. Votre serveur prend probablement en charge le multiplexage de connexion par défaut. (Si vos administrateurs se plaignent, ce n'est pas la mise en cache de votre mot de passe, mais la connexion au complet.)
Avec OpenSSH vous
ControlMaster
et lesControlPath
options (-M et S) d'utiliser ceci:Établissez une connexion «maître» SSH avec
-M
. (Comme vous n'avez pas encore de chemin de contrôle dans votre configuration, vous devez le spécifier en ligne de commande-S
. Il doit durer longtemps, donc j'ajoute les-fN
options pour passer en arrière-plan; elles sont techniquement optionnelles sinon.)Vous êtes de retour à la coquille locale.
Commencez une nouvelle connexion via le maître:
Vous êtes dans.
Pour rendre cela utile pour Git / rsync / SFTP, vous devez le configurer
ControlPath
dans votre configuration, car vous ne pourrez pas spécifier-S
tout le temps:Vous pouvez automatiser ceci - les versions récentes d'OpenSSH ont également
ControlPersist
établi une connexion principale en arrière-plan s'il n'y en a pas encore. Cela vous permet de sauter l'étape 1 et d'utiliser simplement ssh comme vous le feriez normalement.Configuration en
~/.ssh/config
:La première connexion demande le mot de passe:
La seconde ne:
Pour contrôler le maître multiplexé (l’arrêter ou configurer les transferts TCP), utilisez l’
-O
option.Une méthode similaire est supportée par les versions récentes de PuTTY .
la source
Utilisation
sshpass
sshpass ( github , page de manuel ) est un outil qui fournit automatiquement le mot de passe à ssh. La manière sécurisée de l'utiliser est la suivante:
Cela lira le mot de passe
~/.ssh/compute_password
, un peu comme un fichier de clé privée sans phrase secrète. Vous pouvez placer lasshpass
commande dans un petit script shell ou dans un alias de shell pour éviter de saisir cette commande complète. Malheureusement, je n'ai pas trouvé le moyen de le faire~/.ssh/config
.(Il est également possible de spécifier le mot de passe directement sur la ligne de commande
sshpass
, mais cela devrait être évité, car le mot de passe sera divulgué à quiconque le pourra.ps
)Comparaison avec d'autres méthodes
Cette approche est bien sûr moins sécurisée que l’authentification par clé publique correctement configurée, mais vous le savez probablement déjà.
Il est également moins sécurisé que la réponse de @ grawity sur la réutilisation de la connexion, mais présente l’avantage de ne pas avoir à entrer le mot de passe de manière interactive.
Vous pouvez considérer la réponse de @ grawity comme une alternative à l'authentification pubkey avec une phrase secrète et la mise en cache de clés privées (c'est-à-dire
ssh-agent
). Alors ma réponse serait une alternative à l'authentification de pubkey sans phrase secrète sur le fichier de clé privée.la source
head -c 16 /dev/urandom | base64
pour 128 bits) et ne l'utilisez pas sur d'autres systèmes, la sécurité est similaire à une clé. Aussi difficile à forcer que brutal, et aussi simple à utiliser à partir du fichier si ce n’est chiffré. Cela vaut aussi pour le méchant, s’ils récupèrent le fichier. La seule différence est que le mot de passe est envoyé tel quel au serveur, alors que les clés ont de meilleurs calculs pour prouver que vous possédez la clé privée correcte sans la révéler. En termes de facilité d'utilisation, il est plus difficile de chiffrer le fichier contenant le mot de passe outils standard).Utilisez le gestionnaire de mot de passe.
Certains gestionnaires de mots de passe (ex. KeePassXC) disposent de la fonctionnalité de "saisie automatique". Vous stockez le mot de passe sur le gestionnaire de mots de passe, déverrouillez la base de données lorsque vous exécutez le gestionnaire et
ssh
vous invite à entrer votre mot de passe chaque fois que vous appuyez sur une combinaison de touches permettant au gestionnaire de mots de passe d'écrire votre mot de passe long sur la console.Pas besoin de copier, rappelez-vous de tout (sauf le mot de passe pour déverrouiller la base de données) et vous pouvez avoir un mot de passe fort sans écraser ces 30 caractères à chaque fois que vous essayez de vous connecter.
Vous pouvez choisir votre favori dans cette liste: https://en.wikipedia.org/wiki/List_of_password_managers
la source
gnome-terminal
change son titre enssh somehost
quand ssh me demande un mot de passe afin que vous puissiez faire correspondre la fenêtre du titre avec cela sans aucun problème. Je ne connais rien aux fonctionnalités «anti-saisie au clavier» - j'utilise quotidiennement KeePassXC dans un terminal et le pire que je dois faire face est de choisir le compte approprié dans la liste.Une autre alternative consiste à utiliser un client ssh à interface graphique. Sous Windows, le choix évident serait PuTTY . Il existe également une version Linux de PuTTY, notamment la plupart des distributions basées sur Debian comme Ubuntu incluent normalement PuTTY dans leur dépôt.
Un autre très bon client est Termius . Il prend en charge non seulement Windows et Linux, mais également OSX, iOS et Android. Bien que conçue principalement pour les téléphones, la version de bureau est en fait assez bonne.
Si je ne me trompe pas, le vénérable Hyperterminal de Windows a également un client ssh intégré, mais je n’ai pas utilisé Windows depuis très longtemps et je n’en suis donc pas tout à fait certain.
Tous les clients de l'interface graphique incluent la possibilité d'enregistrer les paramètres de connexion, y compris votre nom d'utilisateur et votre mot de passe.
la source