查看ssh公钥方法:
1. 打开git bash窗口2. 进入.ssh目录: cd ~/.ssh3. 找到id_rsa.pub文件: ls4. 查看公钥:cat id_rsa.pub 或者 vim id_rsa.pub
何为公钥:
1. 很多服务器都是需要认证的,ssh认证是其中的一种。在客户端生成公钥,把生成的公钥添加到服务器,你以后连接服务器就不用每次都输入用户名和密码了。2. 很多git服务器都是用ssh认证方式,你需要把你生成的公钥发送给代码仓库管理员,让他给你添加到服务器上,你就可以通过ssh自由地拉取和提交代码了。
生成公钥:
1.如果通过上面的方式找不到公钥,你就需要先生成公钥了:ssh-keygen2.接着会确认存放公钥的地址,默认就是上面说的路径,直接enter键确认3.接着会要求输入密码和确认密码,如果不想设置密码直接不输入内容 按enter键
我们来看看如何配置服务器端的 SSH 访问。 本例中,我们将使用 authorized_keys 方法来对用户进行认证。 同时我们假设你使用的操作系统是标准的 Linux 发行版,比如 Ubuntu。 首先,创建一个操作系统用户 git,并为其建立一个 .ssh 目录。
$ sudo adduser git$ su git$ cd$ mkdir .ssh && chmod 700 .ssh$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
接着,我们需要为系统用户 git 的 authorized_keys 文件添加一些开发者 SSH 公钥。 假设我们已经获得了若干受信任的公钥,并将它们保存在临时文件中。 与前文类似,这些公钥看起来是这样的:
$ cat /tmp/id_rsa.john.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCBr07n/ww+ouN4gSLKssMxXnBOvf9LGt4LojG6rs6hPB09j9R/T18/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4kYjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4owOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9EzSdfd8AcCIicTDWbqLAcU5UpkaX8KyGlLwsNeeztobF8m72ALC/nLF6JLtPofwFfggc+myivO7TCUSBdLQsdMVOFq1I2ufWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPqdAv8JggJICUvax2T9va5 gsg-keypair
将这些公钥加入系统用户 git 的 .ssh 目录下 authorized_keys 文件的末尾:
$ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys$ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys$ cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys
其中john、josie、jessica是为了区分不同用户公钥
现在我们来为开发者新建一个空仓库。可以借助带 --bare 选项的 git init 命令来做到这一点,该命令在初始化仓库时不会创建工作目录:
$ cd /home/git$ mkdir project.git$ cd project.git$ git init --bareInitialized empty Git repository in /opt/git/project.git/
注意/opt/git/project.git这个路径要根据自己的路径来处理,使用pwd命令来查看该路径,以便下面使用
接着,John、Josie 或者 Jessica 中的任意一人可以将他们项目的最初版本推送到这个仓库中,他只需将此仓库设置为项目的远程仓库并向其推送分支。 请注意,每添加一个新项目,都需要有人登录服务器取得 shell,并创建一个裸仓库。 我们假定这个设置了 git 用户和 Git 仓库的服务器使用 gitserver 作为主机名。 同时,假设该服务器运行在内网,并且你已在 DNS 配置中将 gitserver 指向此服务器。那么我们可以运行如下命令(假定 myproject 是已有项目且其中已包含文件):
# on John's computer$ cd myproject$ git init$ git add .$ git commit -m 'initial commit'$ git remote add origin git@gitserver:/opt/git/project.git$ git push origin master
此时,其他开发者可以克隆此仓库,并推回各自的改动,步骤很简单:
$ git clone git@gitserver:/home/git/project.git$ cd project$ vim README$ git commit -am 'fix for the README file'$ git push origin master
注:git@gitserver:/home/git/project.git中gitserver可替换成服务器IP地址
通过这种方法,你可以快速搭建一个具有读写权限、面向多个开发者的 Git 服务器。