git使用openssh方式访问

git服务器搭建好以后,git客户端有两种方式访问服务器,一种是https方式,一种是ssh方式,使用ssh方式可以避免每次提交都要输入用户名密码

在sourcetree当中用openssh方式访问自己搭建的服务器,clone时直接输入git@ip地址:/data/git/threebrush.git

会提示不是一个有效的git地址,详细信息Permission denied (publickey,gssapi-keyex,gssapi-with-mic),

解决方法如下

1.首先在客户端本机创建私钥,可以在bash里用命令创建

# 创建私钥,文件位于用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件

$ ssh-keygen -t rsa –C “youremail@example.com”

2.服务器git目录下创建.ssh目录和authorized_keys权限文件

$ cd /home/git/
$ mkdir .ssh #新建文件夹
$ chmod 700 .ssh 
$ touch .ssh/authorized_keys  #新建文件
$ chmod 600 .ssh/authorized_keys

3.拷贝客户单生成的id_rsa.pub文件到这个权限文件里

# cat /tmp/id_rsa.pub >> /home/git/.ssh/authorized_keys #将上传的id_rsa.pub的公钥写入到权限文件

再次clone成功

2 条评论

  • 王麦斯 2025年5月10日 Author

    新建库并添加权限
    mkdir my_new_repo.git
    cd my_new_repo.git
    git init –bare
    # 确保仓库目录归git用户所有
    sudo chown -R git:git ./backtrader.git
    # 设置目录权限(确保可写)
    sudo chmod -R 755 ./backtrader.git

  • 王麦斯 2026年2月26日 Author

    上面的命令有误初始化空库应该是两个中划线

    git init –bare

发表评论