自己之前很少用ssh这种方式连接git仓库,但是近期的项目想借助webhook尝试自动部署,就需要在vps上面通过ssh链接git,进行pull操作。
按照我的理解,产生一个ssh密钥对后,私钥放到vps的.ssh/id_xxx
下,公钥通过coding.net上传即可。
但是发现coding.net的ssh公钥有两种类型,按照帮助页面的说法,一种验证用户,一种是部署公钥用来保证只读权限,这两个公钥还不能通用,那么问题来了,我在vps上面需要生成两个ssh密钥,分别在coding.net中添加到账户公钥和部署公钥吗?同理,如果存在本地存在俩个私钥,coding.net上传了一个账户公钥和部署公钥,那么coding.net采用哪一个?
还有,虽然一个部署公钥可以用到多个项目,但是我发现公钥上传成功后,就看不到内容,这样,过一阵子vps如果需要部署新的项目,而老的部署公钥没有保存的话是不是就必须弄一个新的密钥?
另外,产生了ssh密钥后,还需要ssh-add操作吗?
补充,账户公钥和部署公钥不能通用:
デプロイメントキーは必要ありません。デプロイメント キーはデプロイメント用であり、すべてのユーザーがマシン上に存在する場合は必要ありません。
coding.net が公開キーを参照できない理由はわかりません。 GitHub と BitBucket の公開キーは両方とも公開されています。さらに、公開鍵は秘密鍵から生成できます。しかし、公開キーと秘密キーは一緒に保存されるのはなぜでしょうか。一方を忘れてしまうのはなぜでしょうか。
ssh-agent を使用する必要がない限り、ssh-add はしません。
sshはほとんど使わないような気がします。