准备工作
通过 SSH 协议在 Git 命令行访问 Codeup,需要具备以下几点:
-
本机已安装
Git
(安装教程参见安装Git)并保证版本大于1.9
(通过git --version
可获取本地的版本); -
本机需要安装
OpenSSH
客户端(GNU/Linux, macOS, 或 Windows 10 已内置OpenSSH
); -
SSH
尽量保持最新,6.5之前的版本由于使用 MD5 签名,可能存在安全问题;
支持的算法类型
算法类型 |
公钥 |
私钥 |
ED25519 (推荐) |
id_ed25519.pub |
id_ed25519 |
RSA (不推荐) |
id_rsa.pub |
id_rsa |
查看已存在的SSH密钥
在生成新的 SSH 密钥前,请先确认是否需要使用本地已生成的SSH密钥,SSH 密钥对一般存放在本地用户的根目录下。
在你的计算机命令行中执行以下语句,判断是否已经存在本地公钥。如果返回一长串以 ssh-ed25519 或 ssh-rsa 开头的字符串, 说明已存在本地公钥,你可以跳过「生成 SSH 密钥」步骤。
Linux、Mac 可以直接使用以下命令查看已生成的公钥,Windows 用户在 WSL(需要 windows10 或以上)或 Git Bash下使用以下命令查看已生成公钥:
ED25519 算法
cat ~/.ssh/id_ed25519.pub
RSA 算法
cat ~/.ssh/id_rsa.pub
生成 SSH 密钥
如果本地没有已存在的SSH密钥,或需要生成新的 SSH 密钥,请按如下步骤操作:
-
打开终端( windows 请使用 WSL或 Git Bash);
-
运行
ssh-keygen -t
,然后输入密钥算法类型和可选的注释。这个注释会出现在.pub
文件中(与认证无关),一般可使用邮箱作为注释内容。
以ED25519
算法为例,生成 ED25519 密钥对的命令如下:
ssh-keygen -t ed25519 -C "<注释内容>"
以RSA
算法为例,生成 RSA 密钥对的命令如下:
ssh-keygen -t rsa -C "<注释内容>"
-
回车选择生成路径,以 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
`。
-
指定一个口令:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
口令默认为空,你可以选择使用口令保护私钥文件。
如果你不想在每次使用 SSH 协议访问仓库时,都要输入用于保护私钥文件的口令,可以在创建公钥、私钥文件时,输入空口令。
点击回车,恭喜 SSH 密钥在本地已经生成了。可以在本地查看 SSH 密钥对内容,并将本地已生成的 SSH 公钥拷贝添加至 Codeup 平台。
警告
密钥用于鉴权,请谨慎保管。公钥文件以 .pub 扩展名结尾,可以公开给其他人,而没有 .pub 扩展名的私钥文件不要泄露给任何人!
拷贝公钥
除了在命令行打印出已生成的公钥信息手动复制外,也可以使用命令拷贝公钥到粘贴板下,请参考操作系统使用以下命令进行拷贝:
Windows(在WSL或Git 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认证密钥的路径
存在一些情况,需要自定义 SSH 认证密钥的路径:
-
本地需要多个密钥对应多个账号
-
本地需要多个密钥对应不同的代码平台(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 进行认证:文章来源:https://www.toymoban.com/news/detail-486577.html
# 访问 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
文章来源地址https://www.toymoban.com/news/detail-486577.html
到了这里,关于阿里云效 ssh公钥配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!