前言:通过用户名密码访问码云的时候有时候会出现正确输入用户名密码却提示错误的情况,很是烦心。通过码云也支持的密钥对(数字签名)访问则会方便很多也有更高的安全性。
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. 修改git路径为SSH格式(重要)
如果以前是使用https下载的代码需要把https切换到ssh#。 不然还是会要求输入用户名和密码。
git remote set-url origin 仓库ssh地址
参考 使用公钥访问码云 使用 Ed25519 算法生成你的 SSH 密钥
|