Dans mon cas, je veux faire un paiement SVN:
svn co svn+ssh://10.106.191.164/home/svn/shproject
Cependant, je veux avoir le mot de passe sur cette seule ligne, afin qu'il ne s'affiche pas.
linux
ssh
svn
authentication
Alex
la source
la source
Réponses:
la source
sshpass
(qui fonctionne pour moi).Étant donné que vous utilisez SSH, la méthode préférée consiste à utiliser une clé publique pour l'autorisation, ce qui évite complètement la nécessité d'un mot de passe.
Un guide pour créer et installer les clés peut être trouvé ici .
la source
Il est infiniment préférable de générer une paire de clés. En tant qu'utilisateur local:
$ ssh-keygen -t rsa
(accepter toutes les valeurs par défaut)
Prenez ensuite le contenu de .ssh / id_rsa.pub et ajoutez-le sur le serveur distant à .ssh / authorized_keys Assurez-vous qu'il est tout collé sur la même ligne. Assurez-vous également que les autorisations du répertoire .ssh sont 600.
Ensuite, vous devriez pouvoir ssh sans être invité à entrer un mot de passe.
la source
Au lieu d'utiliser un mot de passe, vous voudrez peut-être jeter un œil à une paire de clés privée / publique et demander à ssh de l'utiliser. la plupart des distributions linux sont livrées avec des commandes faciles à utiliser pour créer une telle paire. cela nécessiterait cependant un accès côté serveur (une fois) pour déposer le fichier de clé publique dans le fichier ~ / .ssh / authorized_keys de votre utilisateur.
la source
Eh bien, je ne veux entrer un mot de passe - Je ne aime pas compter sur mon mot de passe d' être sauvé quelque part; cependant, je veux l'entrer une fois par ensemble de commandes svn + ssh; et souvent, vous voulez juste en faire un
svn checkout
- et vous devez quand même entrer des tonnes de mots de passe. C'est dans un tel cas que je voudrais taper un mot de passe une seule fois.Ainsi, seules les réponses de @Boinst et @Marius étaient pertinentes pour mon cas d'utilisation; malheureusement, ils n'ont pas aidé, car je n'ai pas pu les faire travailler. Je me demande si les auteurs des articles eux-mêmes ont essayé les commandes avant de les publier, car maintenant je ne peux pas imaginer comment ils pourraient fonctionner - voici un test que j'ai fait localement sur mon PC Ubuntu 10.04 (et je romps avec Ctrl-C, chaque fois que je vois le mot de passe apparaît):
En ce qui concerne
--username/--password
lesvn
ligne de commande est concernée - qui n'a pas d' importance avecsvn+ssh
, parce qu'il est dessh
demander, nonsvn
:svn - Subversion ignorant les options "--password" et "--username" - Stack Overflow
De plus, comme le journal le montre,
ssh
lui-même n'accepte pas "username:password@...
" dans l'URL - et donc non plussvn
. Pourquoi il est acceptable d'utiliser uniquement le nom d'utilisateur dans l'URL danssvn
, est probablement expliqué dans~/.subversion/config
:Remarquez que rien n'est dit
<user>:<pass>@<hostname>
.Maintenant, grâce à la page Subversion sur SVN + SSH sur Debian , j'ai finalement réalisé qu'il y avait une
SVN_SSH
variable d'environnement utilisée~/.subversion/config
pour (je suppose) le tunnel ssh; et cela ouvre enfin la possibilité d'utiliser le programmesshpass
pour gérer le mot de passe d'une manière à sens unique:Eh bien, au moins je suis content d'avoir enfin trouvé une solution qui fonctionne pour moi - j'espère que cela aide quelqu'un d'autre aussi,
Cheers!
la source
la source
Vous pouvez également utiliser le nom d'utilisateur et le mot de passe des commutateurs indiqués .
Reportez -vous à Authentification par ligne de commande .
la source
Je pense que l'utilisation de sshpass (sous Linux) est le meilleur moyen d'y parvenir.
Installer sshpass
Définissez la variable d'environnement temporaire
Modifier le fichier de configuration svn
Enfin commentez ajouter
sshpass -e
à la ligne ssh, avant lassh
commandela source