SpringCloud二十二、Config服务端与GitHub通信。[email protected]: Permission denied (publickey). fatal: Could not re

①用自己的GitHub账号在GitHub上新建一个名为microservicecloud-config
的新Repository远程仓库。

②由上一步获得SSH协议的git地址。

[email protected]:XXXXXXXXX/microservicecloud-config.git

③本地硬盘目录上新建git仓库并clone。

git命令:git clone [email protected]:XXXXXXXX/microservicecloud-config.git

报错:

[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

解决方案:

看上图,需要添加你本机的SSH key。注意换了电脑是要重新添加的,每台都不一样。添加SSH key的方法:

在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,

如下图,用户主目录是:

如果已经有了id_rsa和id_rsa.pub这两个文件,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "[email protected]"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可。如下图:

然后可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。如下图:

然后:

填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:注意不是私钥,是公钥的内容。如下图:

本机的这个git仓库并要和这个SSH key 关联上。用下述方法解决:
ssh-add "你的 id-rsa 文件地址"
注意这里ssh-add后面填的是私钥地址,我的私钥地址是:C:/Users/Administrator/.ssh/id_rsa  如下图:

ssh -add C:/Users/Administrator/.ssh/id_rsa

$ ssh [email protected]
验证是不是添加成功。如下图:

有时候你GitHub仓库初始化时候带了Readme或其他文件,推送之前需要先git pull 拉下来,会报“ * branch master  -> FETCH_HEAD  fatal: 拒绝合并无关的历史”的错误,解决方法是在git pull时加上–allow-unrelated-histories,如下:
git pull origin master --allow-unrelated-histories
这样应该就可以正常push了。

然后clone

git命令:git clone [email protected]:XXXXXXXX/microservicecloud-config.git

④在本地D:\yunweigongchengshi\microservicecloud-config里面新建一个application.yml。(这个地址假设是运维工程师的地址)。

在上图中,而且application.yml必须是以UTF-8的形式保存。

application.yml的全部内容是:

spring:
  profiles:
    active:
    - dev
---
spring:
  profiles: dev     #开发环境
  application: 
    name: microservicecloud-config-lss-dev
---
spring:
  profiles: test   #测试环境
  application: 
    name: microservicecloud-config-lss-test
#  请保存为UTF-8格式

⑤将上一步的YML文件推送到github上。

git add . 和 git add * 区别
git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤,但是git add * 会忽略.gitignore把任何文件都加入

1、git add .

2、git commit -m "init yml" 暂存区提交到本地工作区。

3、git push origin master将本地仓库上传到github

然后查看GitHub发现远程库内容改变。

⑥新建Module模块microservicecloud-config-3344
它即为Cloud的配置中心模块

⑦修改子工程microservicecloud-config-3344的pom文件。

子工程microservicecloud-config-3344的pom文件的修改内容是:

<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-config-server</artifactId>
</dependency> 

子工程microservicecloud-config-3344的pom文件的完整内容是:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.lss.springcloud</groupId>
		<artifactId>microservicecloud</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>microservicecloud-config-3344</artifactId>
	<dependencies>
		<!-- springCloud Config -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-config-server</artifactId>
		</dependency>
		<!-- 避免Config的Git插件报错:org/eclipse/jgit/api/TransportConfigCallback -->
		<dependency>
			<groupId>org.eclipse.jgit</groupId>
			<artifactId>org.eclipse.jgit</artifactId>
			<version>4.10.0.201712302008-r</version>
		</dependency>
		<!-- 图形化监控 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<!-- 熔断 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-hystrix</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jetty</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
		<!-- 热部署插件 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>springloaded</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
	</dependencies>

</project>

如果后台报错:Git插件报错:org/eclipse/jgit/api/TransportConfigCallback

则在pom文件中加入依赖:

<!-- 避免Config的Git插件报错:org/eclipse/jgit/api/TransportConfigCallback -->
        <dependency>
            <groupId>org.eclipse.jgit</groupId>
            <artifactId>org.eclipse.jgit</artifactId>
            <version>4.10.0.201712302008-r</version>
        </dependency>

没出这个错,这个依赖就可以注释掉。

然后update这个项目。

⑧修改子工程microservicecloud-config-3344的yml文件。

application.yml的完整内容是:

server: 
  port: 3344 
  
spring:
  application:
    name:  microservicecloud-config
  cloud:
    config:
      server:
        git:
          uri: [email protected]:XXXXXXXXXX/microservicecloud-config.git #GitHub上面的git仓库名字

⑨创建主启动类Config_3344_StartSpringCloudApp。

创建包:com.lss.springcloud

再在里面创建Config_3344_StartSpringCloudApp类。

Config_3344_StartSpringCloudApp.java的完整 内容是:

package com.lss.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication
@EnableConfigServer
public class Config_3344_StartSpringCloudApp {

	
		 public static void main(String[] args)
		  {
		   SpringApplication.run(Config_3344_StartSpringCloudApp.class,args);
		  }


}

⑩windows下修改hosts文件,增加映射。127.0.0.1 config-3344.com

⑪测试通过Config微服务是否可以从GitHub上获取配置内容。

启动微服务3344

http://config-3344.com:3344/application-dev.yml

http://config-3344.com:3344/application-test.yml

http://config-3344.com:3344/application-xxx.yml(不存在的配置)

⑫配置读取规则。

官网:

/{application}-{profile}.yml的规则是如下这样:

http://config-3344.com:3344/application-dev.yml

http://config-3344.com:3344/application-test.yml

http://config-3344.com:3344/application-xxx.yml(不存在的配置)

/{application}/{profile}[/{label}的规则是如下这样:

http://config-3344.com:3344/application/dev/master

http://config-3344.com:3344/application/test/master

http://config-3344.com:3344/application/xxx/master

master是主干分支。

/{label}/{application}-{profile}.yml的规则是如下这样:

http://config-3344.com:3344/master/application-dev.yml

http://config-3344.com:3344/master/application-test.yml

至此:‘

发布了155 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/lbh19630726/article/details/104329783