首页 > 其他分享 >使用 SSH 连接 Git 服务器

使用 SSH 连接 Git 服务器

时间:2022-12-09 19:34:27浏览次数:60  
标签:Git 私钥 gitea 密钥 服务器 com ssh SSH

关于 SSH

SSH (Secure Shell) 是一种安全的远程登录协议,可以让你通过安全的加密连接进行远程登录。目前,Mac、Windows 10、Linux 系统均有内置 OpenSSH 客户端。如果你想通过 SSH 连接到 Gitea,首先需要创建一对 SSH 密钥(即公钥和私钥),然后将公钥上传到 Gitea。

创建完 SSH 密钥后,在你的本地计算机上,打开一个终端窗口,并运行以下命令:

ssh -T [email protected]

如果你的 SSH 密钥配置正确,这条命令应该能够成功连接到 Gitea。

在这里,git 是一个默认的账号,它是你的 SSH 服务器的登录名,而不是 Gitea 账号或者其他任何名称。gitea.com 是 Gitea 服务器的主机名或 IP 地址。如果你的 Gitea 设置中有相应的 SSH 公钥,这条命令应该能够成功连接到 Gitea。

另外,你还可以使用 SSH 协议操作 Git 其他功能,比如拉取或推送 Git 仓库,或者执行远程命令。例如,要将远程 Git 仓库拉取到本地,你可以运行以下命令:

git clone [email protected]:gitea/awesome-gitea.git

在这条命令中,gitea/awesome-gitea.git 是你的远程 Git 仓库的名称。

生成/添加 SSH 公钥

Gitea 提供了基于 SSH 协议的 Git 服务,在使用 SSH 协议访问仓库之前,需要先配置好账户的 SSH 公钥。

1.打开终端

2.你可以按如下命令来生成 SSH 密钥对。其中的-C "[email protected]" 实际上是一条注释信息,可以填写成你的邮箱地址,并不影响生成密钥的过程。

$ ssh-keygen -t ed25519 -C "[email protected]"

提示: 如果系统不支持较新的 Ed25519 算法,你仍然可以使用 RSA 算法:

$ ssh-keygen -t rsa -b 4096 -C "[email protected]"

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/ferris/.ssh/id_ed25519):[回车,使用默认路径]
Created directory '/home/ferris/.ssh'.
Enter passphrase (empty for no passphrase):[可输入密码]
Enter same passphrase again:[再次输入密码]
Your identification has been saved in /home/ferris/.ssh/id_ed25519
Your public key has been saved in /home/ferris/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:BjlFiHdNt3tI95XnKimBpUV2mhBinfm0jOL9JeG+YDg [email protected]
The key's randomart image is:
+--[ED25519 256]--+
|     .o+=*+ o    |
|    ..o+=+o= .  .|
|     .+. ==.o ..o|
|      .o.==. + oo|
|     . oS...o . o|
|      .o. o..o . |
|      E oo.oo .  |
|       o .o. .   |
|          ..     |
+----[SHA256]-----+

3.按照上述 ssh-keygen 的三次提示分别输入回车、密码、确认密码即可生成 SSH 密钥对。通过查看 ~/.ssh/id_ed25519.pub 文件内容,获取到你的 SSH 公钥。请注意:私钥是 ~/.ssh/id_ed25519。保护好私钥,不要将私钥泄露到网络上。

cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJZ1HF2aEd61o7/EJ350EbXfOksjjNGdB66CwGVRco1g [email protected]

4.复制生成的 SSH 公钥,通过个人主页 「设置」->「SSH/GPG密钥」->「管理 SSH 密钥」 ,添加生成的 SSH 公钥添加到仓库中。

管理 SSH 密钥

添加后,在终端(Terminal)中输入

ssh -T [email protected]

首次使用需要确认并添加主机到本机 SSH 可信列表。若返回 Hi there, USERNAME! You've successfully authenticated... 内容,则证明添加成功。

Hi there, USERNAME! You've successfully authenticated with the key named id_ed25519, but Gitea does not provide shell access.

添加成功后,就可以使用 SSH 协议对仓库进行操作了。比如拉取、推送、删除分支。

仓库级别的「部署密钥」和账户级别「SSH密钥」的区别

你可以在仓库主页 「设置」->「部署密钥」->「添加部署密钥」,将 SSH 公钥添加到仓库中。

添加部署密钥

账户级别的「SSH密钥」同时具备推送/拉取的权限,对用户创建/参与的任意仓库均能使用,应用范围广、使用方便。

仓库级别的「部署密钥」只针对当前设置的仓库,且默认情况下不开启推送权限,我们仅仅将部署密钥用作拉取代码,这通常用于 CI/CD 服务器拉取仓库来执行流水线任务。

另外,如果在填写「部署密钥」时勾选了“启用写权限”,将赋予部署密钥推送权限。

测试 SSH 连接

1.打开终端,使用 ssh -T 测试你的服务器

ssh -T [email protected]

第一次连接服务器时,你会看到以下提示信息:

The authenticity of host 'gitea.com (IP ADDRESS)' can't be established.
RSA key fingerprint is SHA256:Fo6Tm/SLyse8uglFB1JShqQWchU0kcPzSRueD1O9K0I.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

2.输入 yes 验证 Gitea 服务器指纹

Hi there, USERNAME! You've successfully authenticated with the key named id_ed25519, but Gitea does not provide shell access.

如果出现错误,请参考 https://docs.gitea.io/zh-cn/faq/#ssh-issues

[email protected]: Permission denied (publickey).

为 Git 客户端配置多个 SSH 私钥

标签:Git,私钥,gitea,密钥,服务器,com,ssh,SSH
From: https://www.cnblogs.com/Gitea/p/ssh.html

相关文章

  • 服务器学基础知识
    服务器学基础知识一、IBM大型机、中型机、小型机对于x86架构的开放平台机器来说,IBM的封闭平台系列可以说是另一个“体系世界”。 IBMzseries  大型机,z/os操作系......
  • Windows下git配置与安装(转载)
    ​Git是Linux的创始人LinusTorvalds在2006年开发的,Linus自嘲说是一个“傻瓜内容跟踪器”。在Windows下使用Git,可以使用Cygwin+Git,也可以使用Msys+Git。Cygwin太庞......
  • Github账户的注册
    注册步骤首先进入github官网界面(注意,只能用Chrome或者Firefox浏览器。这样保险性更强一些)官网地址:https://github.com/映入眼帘的界面是这样的:点击右上角的Signup,进行......
  • 树莓派SSH连接问题
    1.使用默认账号和密码连不上提示Permissiondenied错误。修改默认用户名密码sudorename-user用新的用户名密码登录 2.在使用SSH远程连接时会出现乱码 sudovi/......
  • git之撤销commit文件 && 回退push的文件
    前言在日常工作之中经常遇到我们在commit(提交到本地仓库)中提交多的文件比如将我们自己的配置文件和自己私有的的依赖或者日志文件提交的本地仓库的,这是和不友好的,一旦p......
  • 代码提交git会出现乱七八糟的文件
    代码提交git会出现乱七八糟的文件具体解决方式:git清一下本地缓存更新一下.gitignore......
  • 服务器经常连不上怎么办?
    服务器经常连不上怎么办?首先要排查服务器死机的原因。根据具体情况来解决这个问题。1.硬件问题导致。内存的原因比较多。2.机房环境不达标,cpu温度过高,系统自动关机。......
  • Linux服务器下启动和关闭node
    首先将node工程的代码和node_modules目录上传到服务器的某一个目录下1、用forever进行管理前提:linux下已经安装了nodenpminstall-gforever//进入到node工程目录......
  • HCL虚拟环境搭建并且支持ssh远程访问
    1.连接设备新建设备和host主机,连线,host主机选择本地网卡(不选host-only网卡)2.启动设备,打开终端,按ctrl+c3.执行命令<H3C>system-view[H3C]intg0/0[H3C-GigabitEthe......
  • gitLab合并其他分支
    多人开发难免需要合并被人的分支代码那么如何合并别人的代码呢我这里演示的是gitLab的合并代码1,首先点击左侧的MergeRequests然后在点击Newmergerequest  2,选......