当前位置: 首页 > news >正文

做网站怎么设置会员赣州seo

做网站怎么设置会员,赣州seo,python基础教程期末题,html5 响应式音乐网站使用gitUrl作为配置源 gitee 或者github 中有类似于发布密钥的功能,允许通过私钥只读访问指定的仓库,文档中说的是 限制了git的操作为pull 和 clone。生成私钥的方式文档连接在此 https://gitee.com/help/articles/4181#article-header0 spring config只…

使用gitUrl作为配置源

gitee 或者github 中有类似于发布密钥的功能,允许通过私钥只读访问指定的仓库,文档中说的是 限制了git的操作为pull 和 clone。生成私钥的方式文档连接在此 https://gitee.com/help/articles/4181#article-header0
spring config只支持PEM格式的私钥,所以在利用ssh-keygen进行生成的时候需要指定格式
ssh-keygen -m PEM -f id_rsa ,执行成功之后,可以在 ~./ssh/ 目录下找到id_rsa.pub id_rsa两个文件,一个公钥,一个私钥。然后对应平台的公钥管理中,添加公钥,将对应的.pub文件中的内容复制进去,选择好对应的仓库。可以使用已下指令进行测试,这里以gitee平台为例子
文档中使用ssh -T git@gitee.com进行测试,但是尝试之后发现,报错ssh: Could not resolve hostname gitee.com: Name or service not known我使用的另外一个指令 git@gitee.com:your_username/config-repo.git这个地址是从对应仓库的ssh地址复制过来的

git ls-remote git@gitee.com:your_username/config-repo.git
39e47b3xxxxxxxxxxxxxxxxxxxxxxxxxxx2f6101d	HEAD
39e47bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx6101d	refs/heads/master

如果成功的话会提示你远程分支的情况。
后面又尝试了一次 ssh -T git@gitee.com又可以成功了,成功之后输出如下

ssh -T git@gitee.com
Hi Anonymous (DeployKey)! You've successfully authenticated, but GITEE.COM does not provide shell access.
Note: Perhaps the current use is DeployKey.
Note: DeployKey only supports pull/fetch operations

以上验证时间为2024年6月24日
以上步骤能通过就说明部署公钥的配置没有问题了,接着在springcloud config 的微服务中将
spring.cloud.config.server.git.uri=git@gitee.com:your_username/config-repo.git设置为实际仓库地址,spring.cloud.config.server.git.private-key=xxxx这是为上述步骤生成的 id_rsa私钥内容地址,这里有一个坑,如果使用的是properties格式的配置文件在配置的时候需要保留输出格式


-----BEGIN RSA PRIVATE KEY-----
...密钥内容
...密钥内容
...密钥内容
-----END RSA PRIVATE KEY-----

比如这是在cat ~/ssh/id_rsa出来的内容,在复制到配置文件中的时候需要在每一行的末尾追加\n

spring.cloud.config.server.git.private-key=-----BEGIN RSA PRIVATE KEY-----\n\
密钥内容\n\
密钥内容\n\
密钥内容\n\
-----END RSA PRIVATE KEY-----

不然spring config会认为不是一个正确的privatekey报错
Reason: Property 'spring.cloud.config.server.git.privateKey' is not a valid private key

使用Java 生成SSH-RSA格式密钥对

该方法可以用在你没有linux系统的情况下生成密钥对,代码使用4o老师进行生成。

package com.fengxiang.cloudconfig.utils;import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.interfaces.RSAPublicKey;
import java.util.Base64;public class KeyPairGeneratorProcess {public static void main(String[] args) {try {// 1. 创建KeyPairGenerator对象,指定算法为RSAKeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");// 2. 初始化KeyPairGenerator,指定密钥长度keyPairGenerator.initialize(2048);// 3. 生成密钥对KeyPair keyPair = keyPairGenerator.generateKeyPair();// 4. 获取公钥和私钥PublicKey publicKey = keyPair.getPublic();PrivateKey privateKey = keyPair.getPrivate();// 5. 打印密钥(以十六进制编码或Base64编码)System.out.println("Public Key: " + bytesToHex(publicKey.getEncoded()));System.out.println("Private Key: " + bytesToHex(privateKey.getEncoded()));// 5. 以ssh-rsa格式输出公钥String sshPublicKey = encodeSSHRSAPublicKey(publicKey, "git@gitee.com");System.out.println("SSH Public Key: " + sshPublicKey);// 6. 以PEM格式输出私钥String pemPrivateKey = encodePEMPrivateKey(privateKey);System.out.println("PEM Private Key:\n" + pemPrivateKey);} catch (Exception e) {e.printStackTrace();}}private static String encodeSSHRSAPublicKey(PublicKey publicKey, String comment) throws Exception {RSAPublicKey rsaPublicKey = (RSAPublicKey) publicKey;byte[] sshRsaPrefix = new byte[] {0x00, 0x00, 0x00, 0x07, 's', 's', 'h', '-', 'r', 's', 'a'};byte[] exponent = rsaPublicKey.getPublicExponent().toByteArray();byte[] modulus = rsaPublicKey.getModulus().toByteArray();byte[] result = new byte[sshRsaPrefix.length + 4 + exponent.length + 4 + modulus.length];int i = 0;System.arraycopy(sshRsaPrefix, 0, result, i, sshRsaPrefix.length);i += sshRsaPrefix.length;result[i++] = (byte) ((exponent.length >> 24) & 0xff);result[i++] = (byte) ((exponent.length >> 16) & 0xff);result[i++] = (byte) ((exponent.length >> 8) & 0xff);result[i++] = (byte) (exponent.length & 0xff);System.arraycopy(exponent, 0, result, i, exponent.length);i += exponent.length;result[i++] = (byte) ((modulus.length >> 24) & 0xff);result[i++] = (byte) ((modulus.length >> 16) & 0xff);result[i++] = (byte) ((modulus.length >> 8) & 0xff);result[i++] = (byte) (modulus.length & 0xff);System.arraycopy(modulus, 0, result, i, modulus.length);String base64Key = Base64.getEncoder().encodeToString(result);return "ssh-rsa " + base64Key + " " + comment;}private static String encodePEMPrivateKey(PrivateKey privateKey) {byte[] keyBytes = privateKey.getEncoded();String base64Key = Base64.getMimeEncoder(64, new byte[] {'\n'}).encodeToString(keyBytes);return "-----BEGIN PRIVATE KEY-----\n" + base64Key + "\n-----END PRIVATE KEY-----";}// 将字节数组转换为十六进制字符串的辅助方法public static String bytesToHex(byte[] bytes) {StringBuilder hexString = new StringBuilder();for (byte b : bytes) {String hex = Integer.toHexString(0xff & b);if (hex.length() == 1) {hexString.append('0');}hexString.append(hex);}return hexString.toString();}
}

需要注意的一点是使用这种方式生成的privatekey进行配置的时候
spring.cloud.config.server.git.private-key=-----BEGIN PRIVATE KEY-----这部分的字符串是没有RSA的

加密

对于配置文件在修改和配置的过程中都需要存放到第三方的或者自建的git服务中,这个过程中可能会导致密钥的泄露,可以使用spring.cloud.config.server.git.private-key={cipher}95376ecf73615297e072fe0819d9cefd85f这种形式来避免明文泄露,同时在configserver的bootstrap.yml设置好对应的参数,该文件不必暴露到git仓库中

encrypt.key=123456
encrypt.salt=123456
spring.cloud.config.server.encrypt.enabled=true

然后在使用明文请求该服务的/encrypt 接口,即可获取到加密之后的密文。只要妥善保存好encrypt.key salt就可以将任何password privateKey通过第三方或者公开的git 仓库进行共享

http://www.zhongyajixie.com/news/3835.html

相关文章:

  • 果洛电子商务网站建设哪家好seo服务哪家好
  • 做内贸在哪些网站上找客户安卓优化大师app下载
  • 南昌金启网站建设江苏网页定制
  • 如何提高网页设计直通车关键词怎么优化
  • 织梦网做网站大学生网络营销策划书
  • 做网站服务器在哪买如何去推广
  • 做二手的网站有哪些温州seo外包公司
  • 苏州网站建设 网络推广公司自助建站系统破解版
  • 本地做网站顺序网页制作与设计教程
  • 淄博网站建设有限公司长沙网站制作推广
  • 群辉怎么做网站北京seo代理商
  • 网站死链怎么删除百度关键词下拉有什么软件
  • 柳州企业网站制作哪家好厦门seo怎么做
  • 重庆网站建设制作设计公司哪家好企业如何注册自己的网站
  • 微店运营seo研究协会
  • 建站 手机网站app推广拉新接单平台
  • 1688阿里巴巴官网长尾词seo排名
  • 为知笔记导入wordpress知乎seo排名的搜软件
  • 国内最先做弹幕的网站培训课程安排
  • 中铁建设集团有限公司华中分公司上海seo优化外包公司
  • 泉州做网站工作室百度账号管家
  • 有哪些做搞笑视频的网站营销策划公司名字
  • 用cms做单页网站怎么做广州疫情已经达峰
  • 私自使用他人图片做网站宣传近期网络舆情事件热点分析
  • 黑色网站源码重庆seo推广
  • 丹麦网站后缀杭州网站优化
  • 母婴网站设计分析央视新闻最新消息今天
  • 网站建设设计制作培训青岛网络科技公司排名
  • 如何建立一个网站放视频市场营销推广策划
  • 中职计算机专业主要学什么天津网站建设优化