步骤如下:
-
生成一个新的自定义名称的公钥:
ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM" -f ~/.ssh/test2
执行命令后,生成命名的公钥和生成默认公钥的步骤一样。
执行完成后,会在 ~/.ssh/目录下生成一个 aysee 和 aysee.pub 文件。 -
在 SSH 用户配置文件 ~/.ssh/config 中指定对应服务所使用的公秘钥名称,如果没有 config 文件的话就新建一个,并输入以下内容:
Host github.com www.github.com
IdentityFile ~/.ssh/aysee -
添加 aysee.pub 到你的 git 服务器网站上。
-
测试配置文件是否正常工作
ssh -T git@gitcafe.com
如果,正常的话,会出现如下提示:
Hi USERNAME! You've successfully authenticated, but github does not provide shell access.
如果出现如下提示,则说明有权限问题:
Permission denied (publickey)如果有权限问题的情况下,你对项目执行 push 操作的时候,会得到如下提示:
Warning: Permanently added the RSA host key for IP address '192.30.252.129' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
多用户时出现权限问题的原因:
github 使用 SSH 与客户端连接。如果是单用户(first),生成密钥对后,将公钥保存至 GitHub,每次连接时 SSH 客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。但是如果是多用户(first,second),我们在连接到 second 的帐号时,second 保存的是自己的公钥,但是 SSH 客户端依然发送默认私钥,即 first 的私钥,那么这个验证自然无法通过。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于