查看已存在的SSH密钥
在生成新的 SSH 密钥前,请先确认是否需要使用本地已生成的SSH密钥,SSH 密钥对一般存放在本地用户的根目录下。
在你的计算机命令行中执行以下语句,判断是否已经存在本地公钥。如果返回一长串以 ssh-ed25519 或 ssh-rsa 开头的字符串, 说明已存在本地公钥,你可以跳过「生成 SSH 密钥」步骤。
ED25519 算法
cat ~/.ssh/id_ed25519.pub
ED25519 算法
cat ~/.ssh/id_rsa.pub
生成 SSH 密钥
如果本地没有已存在的SSH密钥,或需要生成新的 SSH 密钥,请按如下步骤操作:
运行ssh-keygen -t,然后输入密钥算法类型和可选的注释。这个注释会出现在.pub文件中(与认证无关),一般可使用邮箱作为注释内容。
以ED25519算法为例,生成 ED25519 密钥对的命令如下:(推荐)
ssh-keygen -t ed25519 -C "<注释内容>" -f ~/.ssh/id_ed25519
以RSA算法为例,生成 RSA 密钥对的命令如下:(不推荐)
ssh-keygen -t rsa -C "<注释内容>" -f ~/.ssh/id_rsa
口令默认为空,你可以选择使用口令保护私钥文件。
如果你不想在每次使用 SSH 协议访问仓库时,都要输入用于保护私钥文件的口令,可以在创建公钥、私钥文件时,输入空口令。
点击回车,恭喜 SSH 密钥在本地已经生成了。可以在本地查看 SSH 密钥对内容,并将本地已生成的 SSH 公钥拷贝添加至 Codeup 平台。
拷贝公钥
通过查看 ~/.ssh/id_ed25519.pub 文件内容,获取到你的 public key
cat ~/.ssh/id_ed25519.pub
说明:请完整拷贝从 ssh- 开始直到邮箱为止的内容。
在 Codeup 上设置 SSH 公钥
登录阿里云 Codeup ,点击右上角头像-个人设置-「SSH 公钥」展现 SSH 公钥设置弹窗。
将上述本机已存在的 SSH 公钥粘贴到输入框中,同时为当前公钥命名,便于区分管理。
自定义SSH认证密钥的路径
编辑~/.ssh/config,如文件未创建,则在 ~/.ssh 目录下新建一个 config 文件
vi ~/.ssh/config
添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)
# 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
用ssh命令进行测试
ssh -T git@codeup.aliyun.com
首次使用需要确认并添加主机到本机SSH可信列表。若返回Welcome to Codeup, *****!,则证明添加成功。
如果按照上述配置,当使用SSH协议访问时,SSH客户端会按照如下方式进行认证
# 访问 Codeup,将使用 ~/.ssh/id_ed25519.pub 密钥
git clone git@codeup.aliyun.com:example/project.git
# 以 codeup-user-2 别名访问 Codeup 时,将使用 ~/.ssh/codeup_user_2_ed25519 密钥
git clone git@codeup-user-2:example/project.git
常用git命令
克隆仓库
git clone git@codeup.aliyun.com:example/project.git
cd your_path
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
已有文件夹或仓库
cd your_path
git init
git remote add origin git@codeup.aliyun.com:example/project.git
git add .
git commit
git push -u origin master
导入代码库
git clone --bare https://git.example.com/your/project.git your_path
cd your_path
git remote set-url origin git@codeup.aliyun.com:example/project.git
git push --mirror