通过公钥无密码访问码云项目

本文介绍了如何创建SSH密钥对,并在码云上添加公钥,以避免用户名密码登录的问题,提高安全性。步骤包括:使用ssh-keygen生成密钥对,将公钥添加至码云账户,移动私钥文件并修改git路径为SSH格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:通过用户名密码访问码云的时候有时候会出现正确输入用户名密码却提示错误的情况,很是烦心。通过码云也支持的密钥对(数字签名)访问则会方便很多也有更高的安全性。

1. 创建密钥对

命令如下,不指定文件名的话默认输出到~/.ssh/目录下:

ssh-keygen -t ed25519 -C "xxxxx@xxx.com"  
ssh-keygen -C "xxxxx@xxx.com"  

tips: ssh-keygen 的-t参数指定密钥对算法,有 dsa、ecdsa、ecdsa-sk、ed25519、ed25519-sk、rsa这些种类,不指定的话默认rsa。rsa是2048位的,密码强度够用了。码云官方帮助文档《生成/添加SSH公钥》(https://gitee.com/help/articles/4181)默认使用的ed25519算法,的安全性在 RSA 2048 与 RSA 4096 之间,且性能在数十倍以上, 是不错的选择。
-C选项是公钥文件中的备注。不指定的话默当前用户username@host这样的。
-f 可以指定文件名。不指定的话默认为【id_算法名】

下面是操作例子。提示文件名和密码的地方回车可以忽略掉。

pool@VM-0-10-ubuntu:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pool/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/pool/.ssh/id_rsa
Your public key has been saved in /home/pool/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:kgEqtOh511Ubj6Hs92diOC5Nlmlx5daCegHzXZjypXY pool@VM-0-10-ubuntu
The key's randomart image is:
+---[RSA 3072]----+
| .  .      +   o |
|o .. .  . = B o.o|
|o..   .  + * *o+.|
|...   .oo  .+.*oE|
| o . .o.S. o=o.o |
|  . .  .  o*+    |
|          =+ + o |
|         ...o +  |
|          ..     |
+----[SHA256]-----+
pool@VM-0-10-ubuntu:~$ ll .ssh/
total 28
drwx------  2 pool pool 4096 Mar  9 16:53 ./
drwxr-xr-x 33 pool pool 4096 Mar  9 15:45 ../
-rw-------  1 pool pool  411 Mar  9 15:13 id_ed25519
-rw-r--r--  1 pool pool  101 Mar  9 15:13 id_ed25519.pub
-rw-------  1 pool pool 2610 Mar  9 16:53 id_rsa
-rw-r--r--  1 pool pool  573 Mar  9 16:53 id_rsa.pub
-rw-r--r--  1 pool pool  444 Mar  9 15:17 known_hosts
pool@VM-0-10-ubuntu:~$ cat .ssh/id+rsa.pub
cat: .ssh/id+rsa.pub: No such file or directory
pool@VM-0-10-ubuntu:~$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQD2LIDFTRIr49nNH62gwuBm2ygSV9yri84NABp3TMcLCGbEFYwS7jgVrQilsbOuyDYax1ggfxmrfFoFEsFbks6V7EK6Hr4HgkgpEt9Rg0I5H4uW5d3IaczZvvhPYgl07o7+pPS3ZPell/Sxa5q3OkOBcrUngHmS/ruWdlEqFtwmh6XfO/MBN5RAOOG6oVwyctzdyvugaLDcPz/dNY6jvT3XSvcUcG6sNke3NcJI8FAl00Qaeo78hKUbBStuDzRIwQweNn228eeA+EJvEld9UlPQ/kVR5o/aUi2STGA4e5ayDm+DdhYbX/zlEV/jqRiplDO5pFdGAbGnH/3RSlf7BeFvPenXEyy3XIPlAwZTIaEjGMt4Kqavgzm2yWRRk/S18ZjIktCNeSf4jGV2SOd/gGwxJ0hrWbzyQRetSXoA7utRrAIPO9ZVTODU4ZxmJ1jyI2JhLj0HgoMMUgqiiGaqBjgbAuckQrxzgXQ2IYIsT8TC9A6Sxn4w0VzuNwlsqaloKx0= pool@VM-0-10-ubuntu

2.在码云设置里添加公钥

设置->安全设置->ssh公钥中
把公钥文件(id_xxx.pub)中的公钥内容全部复制到“公钥”输入框里。
下面是码云的操作界面:
在这里插入图片描述
设置好了之后,你的码云邮箱会收到设置公钥成功的邮件。

3. 将私钥文件放在.ssh目录下

移动对象:私钥文件:第1步生成的没有扩展名的那个文件。
Linux: (一般不需要特别处理)放在在~/.ssh目录下。ssh-keygen命令的默认输出目录也是这里。
Windows: 放在C:\user\your_windows_user\.ssh\
在这里插入图片描述

4. 修改git路径为SSH格式(重要)

如果以前是使用https下载的代码需要把https切换到ssh#。 不然还是会要求输入用户名和密码。

git remote set-url origin 仓库ssh地址

参考

  1. 使用公钥访问码云
  2. 使用 Ed25519 算法生成你的 SSH 密钥
  3. Ubuntu设置 SSH 通过密钥登录
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值