云效配置 SSH 密钥

效代码管理 Codeup 的代码仓库支持 HTTP(S) 和 SSH 两种访问协议,SSH 协议可以实现安全的免密认证,且性能比 HTTP(S) 协议更好。在使用 SSH 协议操作代码仓库前,首先需要生成并上传你的 SSH 公钥,完成 SSH 公钥和用户账号的对应。

注意 

windows 用户使用 Git 命令行,请务必使用 WSL(需要windows10或以上),或使用 Git Bash

准备工作

通过 SSH 协议在 Git 命令行访问 Codeup,需要具备以下几点:

  • 本机已安装Git(安装教程参见安装Git)并保证版本大于1.9(通过git --version可获取本地的版本);

  • 本机需要安装OpenSSH客户端(GNU/Linux, macOS, 或 Windows 10 已内置OpenSSH);

  • SSH 尽量保持最新,6.5之前的版本由于使用 MD5 签名,可能存在安全问题;

支持的算法类型

查看已存在的SSH密钥

在生成新的 SSH 密钥前,请先确认是否需要使用本地已生成的SSH密钥,SSH 密钥对一般存放在本地用户的根目录下。

在你的计算机命令行中执行以下语句,判断是否已经存在本地公钥。如果返回一长串以 ssh-ed25519 或 ssh-rsa 开头的字符串, 说明已存在本地公钥,你可以跳过「生成 SSH 密钥」步骤。

Linux、Mac 可以直接使用以下命令查看已生成的公钥,Windows 用户在 WSL(需要 windows10 或以上)或 Git Bash下使用以下命令查看已生成公钥:

ED25519 算法

cat ~/.ssh/id_rsa.pub

生成 SSH 密钥

如果本地没有已存在的SSH密钥,或需要生成新的 SSH 密钥,请按如下步骤操作:

  1. 打开终端( windows 请使用 WSL或 Git Bash);

  2. 运行ssh-keygen -t,然后输入密钥算法类型和可选的注释。这个注释会出现在.pub文件中(与认证无关),一般可使用邮箱作为注释内容。

ED25519算法为例,生成 ED25519 密钥对的命令如下:

ssh-keygen -t ed25519 -C "<注释内容>"
ps:<注释内容>可改为你的邮箱地址

RSA算法为例,生成 RSA 密钥对的命令如下:

ssh-keygen -t rsa -C "<注释内容>"

ps:<注释内容>可改为你的邮箱地址

回车选择生成路径,以 ED25519 为例:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):

密钥默认生成路径:/home/user/.ssh/id_ed25519,公钥与之对应为:`/home/user/.ssh/id_ed25519.pub`。

  1. 指定一个口令

    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:

    口令默认为空,你可以选择使用口令保护私钥文件。

    如果你不想在每次使用 SSH 协议访问仓库时,都要输入用于保护私钥文件的口令,可以在创建公钥、私钥文件时,输入空口令。

    点击回车,恭喜 SSH 密钥在本地已经生成了。可以在本地查看 SSH 密钥对内容,并将本地已生成的 SSH 公钥拷贝添加至 Codeup 平台。

拷贝公钥

除了在命令行打印出已生成的公钥信息手动复制外,也可以使用命令拷贝公钥到粘贴板下,请参考操作系统使用以下命令进行拷贝:

Windows(WSLGit Bash):

cat ~/.ssh/id_ed25519.pub | clip

 Mac:

tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy

GNU/Linux (requires xclip):

xclip -sel clip < ~/.ssh/id_ed25519.pub

在 Codeup 上设置 SSH 公钥

点击右上角头像-个人设置-「SSH 公钥」展现 SSH 公钥设置弹窗。

将上述本机已存在的 SSH 公钥粘贴到输入框中,同时为当前公钥命名,便于区分管理。

 

除此之外,支持设置公钥作用范围,可选择「全部」或「只读」,若设置为只读,该公钥只能用于拉取代码,不允许推送。

如有公钥过期时间限制的需求,可设置该公钥的过期时间,到期后公钥自动失效,不可使用。

设置完成后,点击「添加」保存设置,即可使用该 SSH 密钥对执行代码库操作。

自定义SSH认证密钥的路径

存在一些情况,需要自定义 SSH 认证密钥的路径:

  1. 本地需要多个密钥对应多个账号

  2. 本地需要多个密钥对应不同的代码平台(GitLab,GitHub等)

打开终端,编辑~/.ssh/config,如果你使用的是Windows平台,请确认你后续的操作是使用WSL(需要windows10或以上)或使用 Git Bash

 

# Codeup
Host codeup.aliyun.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_ed25519
  
# Codeup 用户2
Name codeup-user-2
Host codeup.aliyun.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/codeup_user_2_ed25519

# GitLab
Host gitlab.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab_ed25519

如果按照上述配置,当使用SSH协议访问时,SSH客户端会按照如下方式进行认证,可实现访问不同平台或同一平台的不同账号使用本地不同的 SSH key 进行认证:

# 访问 Codeup,将使用 ~/.ssh/id_ed25519.pub 密钥
git clone git@codeup.aliyun.com:example/repo.com

# 以 codeup-user-2 别名访问 Codeup 时,将使用 ~/.ssh/codeup_user_2_ed25519 密钥 
git clone git@codeup-user-2:example/repo.com

# 访问 GitLab,将使用 ~/.ssh/gitlab_ed25519 密钥
git clone git@gitlab.com:example/repo.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值