Comment puis-je faire la JSch API connecter à un serveur Unix sans mot de passe?
Je suis en train de faire une application Java, qui exécute les scripts shell sur Unix distant serveur, à l'aide de la JSch API.
Je me demandais si il est possible de se connecter au serveur sans mot de passe. Si oui comment faire? Dois-je générer une paire de clés d'authentification sur les serveurs, puis procéder à l'application de lire les informations sur le fichier de clé?
L'application Java est sur un poste Windows.
OriginalL'auteur sm1988 | 2011-05-10
Vous devez vous connecter pour publier un commentaire.
Puisqu'il a fallu un certain temps avant de le faire fonctionner, voici une toute modifiés exemple:
Méfiez-vous si vous avez copié rsa ou dsa clé pour le serveur et ajouter une identité correspondante à la ligne addIdentity - id_rsa ou id_dsa.
(cat .ssh/id_rsa.pub | ssh-moi@servername 'cat >> .ssh/).
OriginalL'auteur kimmo
C'est certainement faisable. Regardez les exemples répertoire fourni avec jsch.
UserAuthPubKey.java est montrant comment authentifier avec une clé publique, et KeyGen.java est chowing comment créer les clés publique et privée.
OriginalL'auteur jlliagre
Une fois que vous avez trié vos clés, il y a une seule ligne pour permettre la connexion avec une clé plutôt qu'un mot de passe:
La addIdentity méthode prend un seul argument qui pointe vers l'emplacement de votre fichier de clé privée sur votre machine.
OriginalL'auteur DivvyJ
Comme dit par jlliagre, c'est possible.
Générer une paire de clés pour votre application, définissez la clé publique connue de du serveur (souvent de le mettre dans
~/.ssh/authorized_keys
est une bonne façon), et donner les deux touches pour le client JSch objet, soit en tant que fichiers ou byte[]. Vous pouvez également modifier la PreferredAuthentications option pour autoriser uniquement de la clé publique d'authentification, d'éviter de demander un mot de passe ou d'essayer quelque chose d'autre.Remarque: Si vous déposez votre demande d'hôtes n'est pas contrôlée par vous, toute personne qui peut accéder à l'application, les fichiers peuvent utiliser la clé privée pour vous connecter à votre serveur.
Ainsi, vous devez vous assurer que le compte ne peut pas faire quelque chose de néfaste, ou que la machine client (votre compte et de tout privilège) est sous votre (ou seulement connu matches amicaux') total de contrôle. (Chiffrement de la clé privée avec un mot de passe n'aide pas, si la phrase de passe est distribué avec votre programme. Ni le fait de le mettre dans le programme du fichier jar.)
OriginalL'auteur Paŭlo Ebermann