Github Deploy Key 操作如何避免输密码

deploy key 和 ssh key 的区别就是deploy key 只对一个repo有更改权,ssh key是对你账户下所有repo都有管理员权限。
deploy key 和 ssh key 一样,都可以用 ssh-keygen 命令生成。但是生成 ssh-key 使用了默认 id_rsa.pub 文件存储,所以 deploy key 要放在其他的文件中。deploy key是每个Repository 独有的,主要用于 push 代码时使用。每个 Repo 的 deploy key 都是单独设置的,不能多个 Repo 使用相同的 deploy key。如果 Repository 没有添加 deploy key 时直接 push 代码,会出现权限错误。

生成deploy key ,另存

ssh-keygen -f ~/.ssh/deploy_key_repo1

添加路径到认证列表

ssh-add ~/.ssh/deploy_key_repo1

查看认证列表,看是否成功添加

ssh-add -l

复制 deploy public key

$ cat ~/.ssh/deploy_key_repo1.pub | pbcopy

打开github网站,在某个 Repository里面点击设置,添加这个复制的deploy public key , 并授予write权限给这个设备。


add deploy key

这是git push 那个repo可能还会出现让你输入密码的问题,或者说你没有权限。这是查看.git/config文件查看传输协议, 如果是http模式改为ssh模式

[remote "origin"]
    url = https://github.com/yxrdydh/vim-latex-live-preview.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

更改后为

[remote "origin"]
    url = [email protected]:yxrdydh/vim-latex-live-preview.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

要注意语句git remote -v 查看当前的传输协议不一定对,一定要查看config文件有没有问题。语句 git remote set-url origin [email protected]:USERNAME/REPOSITORY.git设定传输协议也不一定生效。

你可能感兴趣的:(Github Deploy Key 操作如何避免输密码)