JGit与远程仓库链接使用的两种验证方式(ssh和https)

JGit是使用JAVA的API来操控Git仓库的库,由Eclipse公司维护。他提供的API分成两个层次,底层命令和高层命令。底层API是直接作用于低级的仓库对象,高层的API是一个面向普通用户级别功能友好的前端。

  JGit主要通过SSH和HTTP(S)的方式与远程仓库进行交互,此外也可以用Git协议(只读)。通过这两种方式,必然是需要添加验证信息的。介绍如下:

(1)HTTPS - https://example.com/repo.git

CloneCommand cloneCommand = Git.cloneReposity();

CloneCommand通过setCredentialsProvider()的方法,通过赋值一个UsernamePasswordCredentialsProvider对象,来提供用户名和密码登陆。

(不建议使用HTTP的方式传送,但是也可行)

  (2)SSH with Public Key -

   其实通过公钥访问的链接:

    [email protected]***.***.***/user/***.git

   而SSH利用公钥的访问方式的认证信息,通过JSCH库提供。而在JGit中提供了JschConfigSessionFactory的抽象类,代码如下:

SshSessionFactory sshSessionFactory = new JschConfigSessionFactory() {

    @Override

    protected void configure( Host host, Session session ) {

      /*
  
   解除HostKey检查,也就意味着可以接受未知的远程主机的文件,这是不安全的,这种模式只是用于测试为目的的。

    利用ssh-keyscan -t rsa hostname,收集主机数据。

    */
session.setConfig("StrictHostKeyChecking","no");

  }

};

以下这是在command中注册认证信息:

cloneCommand.setTransportConfigCallback( new TransportConfigCall back(){

public void  configure(Transporttransport){

SshTransport sshTransport=(SshTransport)transport;

sshTransport.setSshSessionFactory(sshSessionFactory);

}

}

3)SSH  with Password - ssh://[email protected]/repo.git

使用的是上述JschConfigSessionFactory重写的configure方法中,设置password,具体就不详述了。

原文地址:https://www.cnblogs.com/wpcnblog/p/9242711.html

时间: 2024-08-21 18:56:31

JGit与远程仓库链接使用的两种验证方式(ssh和https)的相关文章

gitlab两种连接方式:ssh和http配置介绍

gitlab环境部署好后,创建project工程,在本地或远程下载gitlab代码,有两种方式:ssh和http (1)ssh方式:这是一种相对安全的方式 这要求将本地的公钥上传到gitlab中,如下图: window客户机设置ssh方式连接gitlab,请见:http://www.cnblogs.com/kevingrace/p/5651402.html(文章底部有介绍) (2)http连接方式 这种方式要求project在创建的时候选择"Public"或"Internal

SSH两种验证方式原理

本帖转自 http://www.cnblogs.com/hukey/p/6248468.html SSH验证方式有两种,分别为用户密码认证以及密钥认证. 1.用户密码认证方式 说明: (1) 当客户端发起ssh请求,服务器会把自己的公钥发送给用户: (2) 用户会根据服务器发来的公钥对密码进行加密: (3) 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功. 2.密钥登陆认证 说明: (1) 首先在客户端生成一个密钥对(ssh-keygen): (2) 并将客户端的

前端提交表单两种验证方式记录 jq或h5 required属性

JQuery: <form id="form"> <input type="text" name="aaa"> <select name="bbb"> <option value="">请选择</option> <option value="1">选项1</option> <option value

自制Javascript分页插件,支持AJAX加载和URL带参跳转两种初始化方式,可用于同一页面的多个分页和不同页面的调用

闲话部分 最近闲着实在无聊,就做了点小东西练练手,由于原来一直在用AspNetPager进行分页,而且也进行了深度的定制与原有系统整合的也不错,不过毕竟是用别人的,想着看自己能试着做出来不能,后台的分页插件已经有比较成熟的了,那就自己试着写一个前台分页吧. 话不多说,先上效果图: 优点与缺点 来说说优缺点吧,首先AspNetPager是后台分页控件,所以在向客户端回传HTML文档之前生成HTML阶段 就会把分页代码生成完毕,然后回传,而JS是前端代码,就是HTML文档在服务器组织完毕往客户端传送

Unity3d Android SDK接入解析(二)Unity3d Android SDK的设计与两种接入方式

一.前言 上篇说清楚了Unity和Android调用的方式,但很多实际接入的部分没有讲的很详细,因为重头在这篇,会详细讲述具体接入Android SDK的方式,和怎么去做一个方便Unity接入的SDK. 传送门: 前篇:Unity3d 与 Android之间的互相调用 http://blog.csdn.net/yang8456211/article/details/51331358 后篇:Unity3d Android SDK接入解析(三)接入Android Library的理解 http://

[转]Web APi之认证(Authentication)两种实现方式【二】(十三)

本文转自:http://www.cnblogs.com/CreateMyself/p/4857799.html 前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再叙述废话. 序言 对于所谓的认证说到底就是安全问题,在Web API中有多种方式来实现安全,[accepted]方式来处理基于IIS的安全(通过上节提到的WindowsIdentity依赖于HttpContext和IIS认证)

Veeam的两种备份方式

Veeam的两种备份方式 Veeam创建两种备份文件,vbk是一个完整的备份,vrb/vib是增量备份文件用来记录改变. Reversed Incremental Backup 每次增量备份都会更新vbk文件,vbk中是最新的完整备份,恢复最新的备份只要恢复vbk就可以了.每次增量备份时vbk中修改的内容会被保存到vrb中,所以称之为Reversed,vrb中保存的不是修改的新数据,而是被覆盖的旧数据,恢复以前的备份需要将vrb和vbk合并出来.这种方法永远是增量备份,节省硬盘空间,这是磁盘上面

Android Service的两种启动方式

参考链接 1. 概念 开始,先稍稍讲一点android中Service的概念和用途吧~ Service分为本地服务(LocalService)和远程服务(RemoteService): 1.本地服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不需要IPC, 也不需要AIDL.相应bindService会方便很多.主进程被Kill后,服务便会终止. 2.远程服务为独立的进程,对应进程名格式为所在包名加上你指定的android:process字符

Android四大组件之服务的两种启动方式详解

Service简单概述 Service(服务):是一个没有用户界面.可以在后台长期运行且可以执行操作的应用组件.服务可由其他应用组件启动(如:Activity.另一个service).此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC).例如:服务可以处理网络事务.播放音乐,执行文件 I/O 或与内容提供程序交互,而这一切均可在后台进行. 进程的优先级 了解进程的优先级可以帮助你理解服务~ 1. Foreground process(前台进程) 一句话总结:当前跟用户有交互