之前一直是用本地的配置中心跑微服务一切正常,没有出现过问题,今天想把配置中心部署在公司服务器上面,结果一直报错:无法连接配置中心所在的git地址,研究了好久终于解决了,下面说一下部署的步骤和解决的思路。

【部署步骤】

1. 指定一个域名(2级域名就可以),开通端口6001(随便什么,只要不冲突)

2. 服务器下载git并配置秘钥

   (1) 先检查服务器上面有没有秘钥,id_rsa是私钥,id_rsa.pub是公钥,这两个都有就不用再生成了

   (2) 如果没有就需要生成秘钥,执行命令 ssh-keygen -t rsa -C "xxxxx@xxxxx.com",然后按3次回车就可以

   (3) 执行命令more id_rsa.pub打开文件,然后把id_rsa.pub里面的内容复制下来

3. 登录码云(因为我是用码云作为项目管理工具,github也是这个步骤),配置公钥

    个人中心 -- 设置 -- ssh公钥

    把你刚刚复制的id_rsa.pub里面的内容,放到这里(ssh-rsa和结尾的邮箱,放不放都行,码云可以识别,所以不用纠结)

    然后点击确定就配置成功了

4. 回到服务器,执行命令 ssh -T git@gitee.com

    如果出现这种信息,说明公钥配置成功,服务器和码云已经可以建立连接了

5. 将配置中心服务端jar包上传到服务器,执行命令 java -jar 配置中心.jar

    然后你就可以看到配置中心启动成功了,但是仅仅这样是不够的,如果退出服务器,服务就会停止。

    所以需要 ctrl+z 退出到控制台,执行命令 bg, 执行命令 exit

    这样即使退出服务器,服务也能保持在后台运行

【出现问题】

本来以为不会有什么问题,万万没想到报错了,如下图所示:

   

这错误是说不能连接我给的git地址啊,奇怪,下面我们来排错:

1. 首先想到的是权限不够,回到服务器,执行命令git clone git@gitee.com:woaaadebg11111/xxxxxxxxxxxxxx.git

    结果可以clone下来,这就说明权限是够的,服务器的git也是安装成功的

2. 如果权限是够的,会不会是访问地址的问题,但是能在报错信息里看到我们在代码里配置的git地址,说明地址也是对的

3. 公钥配置不成功,上面我们执行ssh -T git@gitee.com是通的,所以这个错误原因也排除

4. 配置文件不正确,但是我本地是能正常运行的啊,查了一下配置中心服务端的配置文件,发现通过ssh方式连接的都在配置

    文件里面配置了私钥,抱着试一试的态度,修改了配置文件,把服务器id_rsa里面的私钥copy到代码里面

    新增ignore-local-ssh-settings和private-key

    private-key里的东西在哪里找?

   按上面步骤生成密钥之后,会生成两个文件id_rsa和id_rsa.pub,这个private-key里面的内容就是id_rsa里面的复制下来即可

   一般只支持RSA的密钥,如果生成的不是,请重新生成

  ssh-keygen -m PEM -t rsa -b 4096 -C "11111111@qq.com"

5. 测试

居然好使了!!! 看来真是需要配置私钥,想一想其实也对,用公钥的话服务是无状态的,谁都可以用,需要在代码里指定私钥才可以保证安全性

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐