git 配置gitlab/gogs ssh 访问

用途:
远程服务器 拉取 公司gitlab 服务器的代码

在需要拉取的服务器上 生成 ssh 密码
centos 为例:

cd ~
ssh-keygen -t rsa -C "[email protected]"

image.png

注意:如果服务器本身已经存在了 ssh秘钥 可以在提示的时候重命名

image.png

进入 查看 生成的公钥

cat ~/.ssh/id_rsa.pub
image.png

复制这个公钥 添加在用户 SSH 密钥里面

image.png

注意:如果输入秘钥提示以下错误,则是复制的格式有问题,清除格式再复制进去就可以。
无法验证您输入的 SSH 密钥:ParsePublicKey: Invalid public key line: 2048 ....

在 .ssh 目录下 创建文件配置文件 config

vim ~/.ssh/config

内容如下:

# Git  限制域名
Host xxx.xxxx.com
User xxxx
Hostname xxx.xxxx.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

# Git  不限主机
User xxxx
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

测试是否连接成功 [email protected] 是 git ssh的地址

image.png
ssh -T [email protected]

第一次连接会提示如下 直接 输入 yes 下一步 之后就不会提示。


git 配置gitlab/gogs ssh 访问_第1张图片
image.png

显示 welcome to gitlab 就表示链接成功。

参考文章:
https://www.cnblogs.com/superGG1990/p/6844952.html
https://blog.csdn.net/thy38/article/details/49827407

常见问题:

1、链接时出现 “ssh_exchange_identification: Connection closed by remote host” 或者 “ssh_exchange_identification: read: Connection reset by peer”
-解决办法:在服务端修改/etc/hosts.allow文件,加入 sshd:all

image.png

2、测试连接指定端口出现 ssh_exchange_identification: read: Connection reset by peer 无法连接

ssh -T [email protected] -p 10022

查看端口是否开放,如果不开放,则修改ssh的端口

telnet xxx.xxx.com 50022

gogs 添加SSH

git 配置gitlab/gogs ssh 访问_第2张图片
image.png

测试返回以下内容表示连接成功:

[root@localhost]# ssh -T [email protected] -p 10022
Hi there, You've successfully authenticated, but Gogs does not provide shell access.
If this is unexpected, please log in with password and setup Gogs under another user.

注意由于端口不是默认的 22端口 所以 git clone ssh地址的时候加上 ssh://

git clone ssh://[email protected]:10022/web/api.git

3、配置docker gitea ssh链接出现 Permission denied (publickey)
这个是由于 .ssh 目理权限问题 或者 ~/.ssh/config 限制了 host
修改 docker gitea /data/git/.ssh 目录权限为 700或755,修改后链接成功

chmod -R 700 /data/git/.ssh
[root@localhost]# ssh -T [email protected] -p 10022
Hi there, webhook! You've successfully authenticated with the key named develop-webhook, but Gitea does not provide shell access.
If this is unexpected, please log in with password and setup Gitea under another user.

你可能感兴趣的:(git 配置gitlab/gogs ssh 访问)