关注我「程序猿集锦」,获取更多分享。
- 目的
- 检查并生成本地的ssh key
- 检查是否已经存在ssh key
- 检查生成的ssh key
- 登陆Gerrit配置ssh key
- 登录gerrit
- 打开gerrit配置选项
- 添加ssh key
- 查看配置ssh key的结果
- 验证Gerrit的ssh key配置结果
- Git的安装
- git的配置
- 验证gerrit的ssh链接
- 结束语
目的
本文的目的是指导在Windows操作系统下面,如何配置通过ssh key来访问gerrit服务器。
检查并生成本地的ssh key
检查是否已经存在ssh key
在生成本地的ssh key之前,我们需要首先检查一下自己本地是否已经生成过ssh key,如果已经生成过,则不需要再次生成,可以直接使用已经存在的ssh key,如果没生成过ssh key,则需要生成新的ssh key。
具体检查是否生成ssh key的方法如下,以管理员的方式运行Powershell程序,然后再里面输入如下命令,**注意:**如果没有powershell程序,就以管理员身份运行cmd程序。
C:\Windows\system32>dir C:\Users\zhangsan\.ssh 驱动器 C 中的卷没有标签。 卷的序列号是 E637-92C8 C:\Users\zhangsan 的目录 找不到文件 C:\Windows\system32>
通过上面的命令和输出我们可以看出本地是没有生成过ssh key的,我们可以通过如下的命令生成ssh key。
生成ssh key的命令如下。在以管理员的方式运行powershell程序,然后执行如下命令,**注意:**如果没有powershell程序,就以管理员身份运行cmd程序。
C:\Windows\system32>ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\zhangsan/.ssh/id_rsa): Created directory 'C:\Users\zhangsan/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\zhangsan/.ssh/id_rsa. Your public key has been saved in C:\Users\zhangsan/.. The key fingerprint is: SHA256:8tmUEwMEcYpAzq2OECpZ45PwO6yT9Y/jhg6q2DiQUwA zhangsan@mywinpc The key's randomart image is: +---[RSA 2048]----+ o++ | |.o o . o . | |o.= o . o | |.B.+ + | |=o* . S + | |*+.o o + . | |++=o o . | |*=..+. | |B+oooo. | +----[SHA256]-----+ C:\Windows\system32>
检查生成的ssh key
使用下面的命令来检查生成的ssh key:
C:\Windows\system32>dir C:\Users\zhangsan\.ssh 驱动器 C 中的卷没有标签。 卷的序列号是 E637-92C8 C:\Users\zhangsan\.ssh 的目录 2021/07/21 16:53 <DIR> . 2021/07/21 16:53 <DIR> .. 2021/07/21 16:53 1,679 id_rsa 2021/07/21 16:53 398 id_r 2 个文件 2,077 字节 2 个目录 2,809,282,560 可用字节 C:\Windows\system32>
通过上面的命令和输出结果,我们可以看出,ssh key已经生成成功。
其中两个文件的含义如下:
- id_rsa:私钥文件,不要轻易给别人知道这个文件内容。
- id_r:公钥文件,可以发送给他人,或配置到其他服务器上,通过自己的私钥,链接到配置在其他服务器上面的私钥来实现远程的免密码登陆访问。
登陆Gerrit配置ssh key
前面我们已经在本地准备好ssh key了,下面我把准备好的ssh key配置到我们的gerrit账号下面。
登录gerrit
使用自己的平台账号登陆gerrit的web页面,如下所示:
打开gerrit配置选项
登录成功后,如下所示,点击你的姓名选择settings菜单。
然后再次选择SSH Public Keys选项,然后再点击右侧的Add Key按钮,如下所示:
添加ssh key
查看本地的ssh key中的公钥,然后把你本地C:\Users\zhangsan\.ssh\id_r文件中的内容,如下所示:
C:\Windows\system32>more C:\Users\zhangsan\.ssh\id_r ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDj7HXYt6XPWrRpE+p3xe592fwV/EA3fMoL4CbCXbEYWTqj4ZE+621k6DgNq+RAIWu+u6aCAykmtPLCKqMxTlTeJ/hohm/bHlIXITcxuBscRNp67dpkl6kNn8IRoFJxYQbhADJwEx5nRn8qFe5BttFs+9Exs9G0bz5RDb5HJpmhDalm/8Nct5k+QrfAZ6Gzv3txgiiH5BuKf/bxuVXpTwvL+637aYDREADKOnyPang0x9aACI82q5dwPa0jqJvRGij8uwjEnXh+nmkqwZeI8ZFSCitAo8tsfhbjBKwfkV7sYmOHJnsMZRvnG0tR9QK7RXPYmlT97TYIQjEalXc5tiSL zhangsan@mywinpc
复制上面命令的输出内容,将其粘贴到下面的文本框中,然后Add按钮,如下所示:
查看配置ssh key的结果
添加完成public key之后,此时你的gerrit账号下面就配置了一个public key。
验证Gerrit的ssh key配置结果
到目前为止,我们已经把自己本地ssh key配置到了gerrit账号下面,下面我们来使用git命令来验证一下是否可以正常链接到gerrit服务器上进行代码的拉取和推送操作。
Git的安装
如果你本地还那样安装git,请参考下面的git的安装步骤,如果已经安装了git,则可以跳过git的安装步骤。
验证是否安装了git的方式通过如下命令:
C:\Windows\system32>git 'git' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Windows\system32>
通过上面的命令和输出结果,我们可以得知,本地目前是没有安装Git组件的。
在Windows上安装Git很简单,有以下几种安装方法,推荐使用第一种方式:
- 官方版本可以在 Git 官方网站下载。 打开 ,下载会自动开始。 要注意这是一个名为 Git for Windows 的项目(也叫做 msysGit),和 Git 是分别独立的项目;更多信息请访问 。
- 要进行自动安装,你可以使用 Git Chocolatey 包。 注意 Chocolatey 包是由社区维护的。
- 另一个简单的方法是安装 GitHub Desktop。 该安装程序包含图形化和命令行版本的 Git。 它也能支持 Powershell,提供了稳定的凭证缓存和健全的换行设置。 稍后我们会对这方面有更多了解,现在只要一句话就够了,这些都是你所需要的。 你可以在 GitHub for Windows 网站下载,网址为 GitHub Desktop 网站。
下载完成之后,右键以管理员的身份运行.exe文件,一路下一步即可完成Git的安装。
安装完成git之后,搜索找到git cmd程序,这个是在安装完成Git之后才用的命令行程序,右键以管理员身份运行git cmd程序,然后通过如下命令来验证是否安装成功。
C:\Users\zhangsan>git --version git version 2.32.0.windows.2 C:\Users\zhangsan>
Git的配置
上面我们完成了git的安装,接下来我们在使用git之前,需要对git简单的配置一下,这样在外面提交代码的时候。
在配置之前,可优先看一下是否已经配置了对应的参数,使用如下命令查看:
C:\Users\zhangsan>git config --list di clean -- %f smudge -- %f filter-process http.sslcainfo=d:/Program Files/Git/mingw64/ssl/cer core.autocrlf=true core.fscache=true core.symlinks=false creden creden init.defaultbranch=master C:\Users\zhangsan>
通过上面命令的输出结果来看,在本地电脑上还没有配置git用户名和邮箱的全局参数。
请参考下面的命令来进行配置,需要注意的是,你需要把后面的参数换成你自己的姓名全拼音和对应的邮箱地址:
C:\Users\zhangsan>git config --global u "zhangsan" C:\Users\zhangsan>git config --global u "zhangsan@mywin; C:\Users\zhangsan>
git全局参数设置后的结果如下:
C:\Users\zhangsan>git config --list di clean -- %f smudge -- %f filter-process http.sslcainfo=d:/Program Files/Git/mingw64/ssl/cer core.autocrlf=true core.fscache=true core.symlinks=false creden creden init.defaultbranch=master u=zhangsan u=zhangsan@mywinpc.com C:\Users\zhangsan>
验证gerrit的ssh链接
git安装并且配置好之后,现在开始尝试通过外面配置的ssh key免密链接到gerrit。
登陆gerrit的web页面,找到我们要clone的项目,具体路径为:Projects->List->选择你能访问的项目
进入下面的页面,按步骤依次点击下面的链接:
进入自己的git cmd命令行窗口,在自己用户的目录下,新建一个文件夹,用于存放gerrit的项目,然后进入到这个文件夹下面,粘贴上面复制的命令,然后回车执行。
如果弹出提示是否要继续连接,输入yes后回车,继续链接。
C:\Users\zhangsan>mkdir gerrit_projects C:\Users\zhangsan>cd gerrit_projects C:\Users\zhangsan\gerrit_projects>git clone ssh://zhangsan@in && scp -p -P 29888 zhangsan@in my_springboot_backend/.git/hooks/ Cloning into 'my_springboot_backend'... The authenticity of host '[in]:29888 ([10.10.10.11]:29888)' can't be established. RSA key fingerprint is SHA256:++v37ZAKWBgE7hhrZC1teajoQqpdIBbMOnhSJyoACMc. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '[in]:29888' (RSA) to the list of known hosts. remote: Counting objects: 11108, done remote: Finding sources: 100% (11108/11108) remote: Total 11108 (delta 5684), reused 10779 (delta 5684) Receiving objects: 100% (11108/11108), 36.92 MiB | 3.30 MiB/s, done. Resolving deltas: 100% (5684/5684), done. Updating files: 100% (707/707), done. Warning: Permanently added the RSA host key for IP address '[10.10.10.11]:29888' to the list of known hosts. commit-msg 100% 4682 41.8KB/s 00:00 close - IO is still pending on closed socket. read:1, write:0, io:000001FD5002F320 C:\Users\zhangsan\gerrit_projects>dir 驱动器 C 中的卷没有标签。 卷的序列号是 E637-92C8 C:\Users\zhangsan\gerrit_projects 的目录 2021/07/21 18:10 <DIR> . 2021/07/21 18:10 <DIR> .. 2021/07/21 18:10 <DIR> my_springboot_backend 0 个文件 0 字节 3 个目录 1,081,532,416 可用字节 C:\Users\zhangsan\gerrit_projects>cd my_springboot_backend C:\Users\zhangsan\gerrit_projects\my_springboot_backend>dir 驱动器 C 中的卷没有标签。 卷的序列号是 E637-92C8 C:\Users\zhangsan\gerrit_projects\my_springboot_backend 的目录 2021/07/21 18:10 <DIR> . 2021/07/21 18:10 <DIR> .. 2021/07/21 18:10 2,475 .gitignore 2021/07/21 18:10 9,443 2021/07/21 18:10 <DIR> script 2021/07/21 18:10 <DIR> src 2021/07/21 18:10 <DIR> upload 2 个文件 11,918 字节 5 个目录 1,081,466,880 可用字节 C:\Users\zhangsan\gerrit_projects\my_springboot_backend>git status On branch master Your branch is up to date with 'origin/master'. nothing to commit, working tree clean C:\Users\zhangsan\gerrit_projects\my_springboot_backend>
通过上面的命令和输出,我们可以已经可以成功地从gerrit上面克隆代码仓库到本地来。
结束语
以上就是在Windows上配置ssh key免密码访问gerrit的步骤,希望能帮到您。