【 一 】ssh链接远程仓库
【 1 】初步使用方法
# - git remote add origin https://gitee.com/bai-zhitao/lufy.git
- 输入用户名密码
- 加密方式:SSH通常使用RSA、DSA、ECDSA或Ed25519等公钥加密算法。RSA是其中最常用的一种。
- 非对称加密:公钥加密算法使用一对密钥:公钥(public key)和私钥(private key)。这两个密钥在数学上是相关的,但知道其中一个并不能直接计算出另一个。这就是“非对称”的含义。
- 公钥加密,私钥解密:这个说法在SSH密钥认证的场景中并不完全准确,因为SSH密钥认证实际上并不直接使用公钥来加密数据。但在更广泛的公钥加密概念中,这个说法是正确的。公钥用于加密数据,只有拥有相应私钥的人才能解密这些数据。但在SSH密钥认证中,私钥用于在本地机器上生成一个签名,而公钥用于在远程服务器上验证这个签名。
- SSH密钥认证的工作原理:
- 当用户尝试使用SSH连接到远程服务器时,客户端(通常是
ssh
命令)会提示用户选择一个私钥(或者如果只有一个私钥,它可能会自动选择)。 - 客户端使用私钥来生成一个签名,这个签名基于会话的一些参数(如用户名、远程主机名、会话ID等)和一个随机生成的字符串(通常称为“挑战”或“nonce”)。
- 客户端将公钥、签名以及会话参数发送给远程服务器。
- 远程服务器从
~/.ssh/authorized_keys
文件中检索相应的公钥,并使用它来验证签名。 - 如果签名验证成功,服务器就认为客户端拥有与公钥配对的私钥,并允许用户登录。
- 当用户尝试使用SSH连接到远程服务器时,客户端(通常是
所以,在SSH密钥认证中,私钥用于生成签名,而公钥用于验证签名。这种机制确保了只有拥有私钥的人才能成功进行身份验证。
# ssh-keygen -t ed25519 -C "Gitee SSH Key"
ssh-keygen -t ed25519 -C "3086361800@qq.com"
# ls ~/.ssh/
# cat ~/.ssh/id_ed25519.pub
【 2 】本地代码提交到远端 —》 修改远程地址
# git remote remove origin # 删除origin对应的远程仓库地址
# git remote
# git remote add origin git@gitee.com:bai-zhitao/git_lufy.git
# git push origin master