背景: 我在我的阿里云服务器上,创建了 Git 服务,作为远程 Git 仓库,并配置了 /home/git/.ssh/ 目录下的 authorized_keys,但是在本地客户端连接时仍需要输入密码。
解决方案: 在 客户端 ~/.ssh/ 目录下创建 config 文件,填写如下内容:
host git-server
user server
hostname 123.58.162.9
port 22
identityfile ~/.ssh/<私钥文件名>
这块,git-server 是创建的连接名,user 是连接的服务器端的用户,这里是 server,一般是 git. hotname 就填你搭建服务器的主机名,最重要的是 identityfile 这里填当前目录下你生成的私钥文件名,例如 id_rsa ,注意,不是 id_rsa.pub
然后,后面连接 git 服务时,使用
git commend git-server:/path
就可以了,也就是用 git-server 取代了之前的 git@<hostname>
另外,如果你之前已经通过 git@<hostname>
克隆了仓库,那么你可以在项目目录下 .git 文件夹中,修改 config 文件(注意,不是 ~/.ssh/ 下的 config 文件)
例如:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = git@<hostname>:<path>
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
修改上面的 url 部分,变为 git-server:<path>
这种形式就可以了。
参考资料: 阿里云 搭建Git服务器