Peut-on utiliser JSch pour SSH par clé de la communication?
Je suis en utilisant JSch pour sftp communication, maintenant que je veux utiliser pour faciliter la fonction de clé d'authentification, la clé est chargé sur le client et le serveur de la machine une fois par mon réseau de l'équipe et de toute communication ultérieure serait uniquement basée sur l'utilisateur pour lequel nous avons chargé la clé.
sftp -oPort=10022 jmark@192.18.0.246
comme [email protected]
comme cette commande fonctionne bien et se connecter à la sftp, comment je peux obtenir cette fonctionnalité par programmation.
si il n'est pas possible à l'aide de JSch, s'il vous plaît suggérer une autre bibliothèque. Je suis tombé sur Apache SSHD.
Vous devez vous connecter pour publier un commentaire.
C'est possible. Jetez un oeil à
JSch.addIdentity(...)
Cela vous permet d'utiliser la clé soit en tant que tableau d'octets ou de lire à partir du fichier.
.ssh/id_rsa
ou similaire, ou qu'il y a un réglage spécial dans.ssh/config
pour votre machine, ou que vous utilisez un programme commessh_agent
donner la clé à la demande. Découvrir ce qui est le cas pour vous, et l'ajouter à votre question.session.setUserInfo(userinfo)
. Sans elle, je recevaisJSchException: USERAUTH fail
ssh -i /path/to/private_key
si elle envoie le nom d'utilisateur ou pas...ssh -i
, sans spécifier de nom d'utilisateur, il utilise le nom d'utilisateur du compte sur la machine client. Donc, si vous êtes connecté en tant que steve@client, c'est comme diressh -i /path/to/private_key steve@remote
.StrictHostKeyChecking
. Au moins pas sans expliquer les conséquences! Voir par exemple JSch SFTP de sécurité de la session.setConfig(“StrictHostKeyChecking”, “non”);.addIdentity()
méthode qui accepte la clé et le mot de passe pour elle, de sorte que vous n'avez pas besoin de gérer unUserInfo
-Objet