Linux--Git通过ssh实现免密登录并上传文件到仓库

Linux--Git通过ssh实现免密登录并上传文件到仓库

说明

上篇介绍了如何搭建git仓库,这篇就为大家介绍如何用ssh如何实现免密登录,并上传文件到空仓库。


命令详解

上篇已经创建了一个空的仓库test_www.git

1.进到自己想要克隆项目的用户家目录下,以我自己的账号为例

命令:su zhangsan 
    cd /
说明:  进到自己的目录下创建公钥文件

2.生成公钥文件

命令:ssh-keygen
说明:用来生成ssh公钥认证所需的公钥和私钥文件 也可以用 ssh-keygen -t rsa -P ''
-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
说明:  ssh-keygen 

执行结果:
git@iZm5eiw4hobozjn054cjzrZ:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/git/.ssh/id_rsa):
Created directory '/home/git/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/git/.ssh/id_rsa.
Your public key has been saved in /home/git/.ssh/id_rsa.pub.
The key fingerprint is:
d0:87:0f:a4:58:bb:69:33:4d:fb:09:e9:7a:80:5a:b5 git@iZm5eiw4hobozjn054cjzrZ
The key's randomart image is:
+--[ RSA 2048]----+
|      . .        |
|     o = .       |
|    . + = .      |
|      .* *       |
|     o*.S .      |
|    o.E+ o .     |
|   o   .. o      |
|  .    ..        |
|      ..         |
+-----------------+

创建成功后当前目录下会有一个隐藏文件夹 .ssh,里边就是公钥和私钥文件
git@iZm5eiw4hobozjn054cjzrZ:~/.ssh$ ls
id_rsa  id_rsa.pub

3.将 id_rsa.pub下的内容拷贝到 git服务器ssh文件夹下的authorized_keys

cat id_rsa.pub //用cat命令输出id_rsa.pub 拷贝到服务器上,cat会避免空格的问题

4.测试并克隆项目

git clone git@**.***.***.25:/home/git/depot/test_www.git
运行结果:
zhangwei@iZm5eiw4hobozjn054cjzrZ:~/data/www$ git clone git@**.***.***.25:/home/git/depot/test_www.git
Cloning into 'test_www'...
The authenticity of host '47.105.156.25 (47.105.156.25)' can't be established.
ECDSA key fingerprint is fc:1c:94:aa:b0:c6:6c:05:7f:ab:14:2b:70:fe:3d:2c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '47.105.156.25' (ECDSA) to the list of known hosts.
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

5. 创建测试文件并上传

 cd test_www/
 echo "git仓库创建测试" >> git_test.text     //创建测试文件
 git status   //查看当前修改文件的状态
 git add git_test.text   //添加文件到本地仓库
 git commit -m "空文件上传"  //添加上传注释
 git push origin master  //推送到远程分支
 git branch -a //查看所有分支
 【第一次使用git提交文件时需设置自己的emali和name,commit时会出现错误信息】
  git config --global user.email "zhangsan@qq.com"
  git config --global user.name "Zhang San"

结尾

昨夜雨疏风骤,浓睡不消残酒,试问卷帘人,却道海棠依旧。知否,知否,应是绿肥红瘦--《如梦令·昨夜雨疏风骤》

添加新评论