在我的电脑上可以直接把项目的代码 push 到项目的远程仓库,是因为我配置了远程仓库帐户,把在自己电脑上生成的 ssh 公钥放了进去 ..
在部署网站的时候,需要在项目的远程仓库那里拉取项目的代码 .. 默认也要验证服务器的公钥 .. 你可以在服务器上生成一对密钥,然后把公钥内容也放到我们在远程仓库的帐户的下面 ..
或者我们可以使用 ssh-agent 转发 .. 设置好以后,在我们电脑上 ssh 到服务器,服务器要去拉取项目代码的时候,会使用我们电脑上的 ssh key ..
实验
打开命令行工具 .. windows 用 cmder 新建一个 bash 类型的命令行标签 ,mac 直接用自带的终端..
我们可以验证一下是否能通过 ssh 访问 github,可以在命令行下面,执行一下 ssh -T git@github.com .. 这里会提示 .. You've successfully authenticated .. 说明在我们的电脑上能用我的 ssh key 通过 github.com 的身份验证 ..
新建一个命令行标签 .. 我们再登录到服务器 ... ssh wanghao@42.120.40.68 .. 进来以后,再执行一下 ssh -T git@github.com
在服务器上,会提示 Permission denied (publickey) .. 这样如果我们在服务器上去克隆 ssh 类型的地址的仓库的时候,也会提示 Permission denied
因为我们没有在服务器上生成 ssh key ,生成以后要把 ssh key 的公钥放到 Github 帐户里面 .. 这样才能通过身份验证 ..
或者可以使用 ssh-agent 转发功能,让服务器使用我们电脑上的 ssh key 在 github 网站上验证身份 ..