在Linux上配置git+ssh方案,windows下ssh私钥在Linux上配置使用,亲测有效

ssh介绍

用Git与远端仓库之间进行通信有2种方式,即http和ssh方式。
最直观的区别就是:
· 使用http时,安装简单,但是每次push时,需要输入用户名和密码,比较麻烦;
· 使用ssh时,安装配置步骤稍微多点,但是每次push时,无需输入用户和密码,可直接push,更加方便。
ssh是利用公钥密码技术验证身份的,一份公钥一份私钥,其使用不受平台限制。
另外在安全性上ssh也是比http更好的,目前大部分的git仓库都是支持这2种方式。

在Windows上使用git+ssh

这个配置和就不赘述了,网上很多教程,这儿引用一篇文章说明。

Windows上ssh生成的密钥文件在Linux上使用

可以确认的是,ssh私钥本身是跨平台的,在所有可使用ssh的平台都可以认证成功的。
windows上的ssh私钥文件目录为 C:\Users\xxxxx.ssh

id_rsa :存放私钥的文件
id_rsa.pub :存放公钥的文件
known_hsots :可以保存多个公钥文件,每个访问过计算机的公钥(public key)都记录在.ssh/known_hosts文件中

在这里插入图片描述
将整个.ssh文件夹拷贝到linux的用户家目录下,注意它在Linux上是隐藏文件夹。
root用户要放在/root/目录下。
另:
在windiws下创建的比如rsa的密钥,放到了linux下,使用的时候,有可能报各种格式不对等等,这有可能是window平台和linux平台换行符号不同导致的。两个系统回车编码不同,导致密钥认不出来,所以在Linux上随便用个文本编辑把钥匙里的回车格式转一下保存,就可以用了。

Linux上测试、安装和开启ssh服务

netstat -anp|grep :22 //通过检查默认端口22查看是ssh否开启
tcp 0 0 0.0.0.0:22 0.0.0.0:*
tcp 0 36 172.16.0.6:22 211.161.248.60:22447
sudo service sshd status //查看ssh服务状态

没有安装ssh服务的话需要先安装ssh服务(ubuntu)

sudo apt-get update
sudo apt-get install openssh-server

安装 openssh-server时可能出现的错误:
在这里插入图片描述
可以看出是openssh-server依赖于openssh-client ,而安装的openssh-server版本需要的openssh-client 版本不匹配。
现在安装的openssh-server依赖于=1:7.2p2-4版本,所以需要对openssh-client 升级或者降级:

sudo apt-get install openssh-client=1:7.2p2-4ubuntu1.10

在这里插入图片描述
再启动ssh服务:

sudo service ssh start 

检查服务是否启动:

ps -e | grep ssh

 15575 ?        00:00:00 sshd

ssh进行连接服务器测试当前登录用户家目录下的ssh私钥是否有效:

ssh -T git@192.168.xx.xxx

网上有用 ssh -T git@github.com 进行测试,连接不通可能是因为不认识github.com主机,需要配置一下host文件。

可能出现错误 WARNING: UNPROTECTED PRIVATE KEY FILE!

在这里插入图片描述
这里是说密钥文件权限不能为0766,因为0766权限太开放了,要求你的密钥文件不能被其它用户读取,所以需要修改一下密钥文件权限。
对前面的私钥文件id_rsa修改降低其权限即可。

chmod 700 id_rsa

再用ssh访问,能获取到文件夹表明私钥配置已经起作用!
在这里插入图片描述

再用git clone就可以了,clone之前注意将Linux上的git config设置用户名。

Linux上安装git

Linux上安装GitGUI(gitcola)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Git 在服务器上使用 SSH 公钥授权是一种常见的授权方式,它通过设置公钥和私钥的配对来进行认证和授权。下面是具体的步骤: 1. 生成 SSH 密钥对:在本地终端中使用 `ssh-keygen` 命令生成 SSH 密钥对,该命令将生成一对公钥和私钥文件,一般默认保存在 `~/.ssh` 目录下。 2. 添加公钥到服务器:将生成的公钥文件中的内容复制到服务器上的 `~/.ssh/authorized_keys` 文件中,每个公钥应占据一行。如果 `authorized_keys` 文件不存在,可以使用 `touch ~/.ssh/authorized_keys` 创建新文件。 3. 配置服务器相关设置:确保服务器上的 `sshd_config` 文件中设置了以下配置项: ``` PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys ``` 如果有必要,重启 SSH 服务。 4. 测试连接:在本地终端中执行 `ssh -T git@服务器IP地址` 命令进行测试,如果返回欢迎信息,则表示连接成功。 5. 配置 Git 仓库权限:进入服务器上的 Git 仓库目录,执行 `git init --bare` 命令以设置一个空的 Git 仓库。然后,在本地终端中进入相应的本地 Git 仓库目录,执行 `git remote add origin ssh://服务器IP地址/仓库路径` 命令将远程仓库关联到本地仓库。 这样,当你在本地进行 Git 操作(如 push 或 pull)时,Git使用 SSH 公钥与服务器进行授权验证,确保只有拥有相应私钥的用户才能进行操作。这种方式安全可靠,并且不需要每次输入用户名和密码进行授权。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值