Spring Cloud配置SSH连接统一配置中心

当时在配置ssh连接的时候不知不觉就掉坑里去了,对一些知识点没完全理解;

先说说的掉坑,复制id_rsa文件内的文本出来,放进bootstrap.ymlprivateKey中,如下图

启动报错

1
2
Binding to target org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'spring.cloud.config.server.git' to org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentProperties failed:
Reason: Property 'spring.cloud.config.server.git.privateKey' is not a valid private key

我们看看官网怎么配spring.cloud.config.server.git

bootstrap.yml

有没有发现不一样,没错,官网配置的privateKey里少了前3行属性
为什么???
因为官网的秘钥在生成时是没有设置秘钥密码的,而我们的秘钥是有密码的,它没办法解密秘钥;
解决办法两种:

  1. ==我们在生成秘钥时也不设置秘钥密码==
  2. ==在yml中配置的git属性添加passphrase==

下面是全配置过程,主要分3步

生成公钥与私钥

打开Git Bash/Terminal,输入ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

引号里面替换成你的邮箱地址或标志自己身份的信息

提示保存秘钥的文件位置,直接回车保持默认位置

设置秘钥密码(直接回车则不设置秘钥密码),生成公钥、秘钥

完成之后可以在/root/.ssh/目录下找到公钥(id_rsa.pub)秘钥(id_rsa)

将公钥添加到git上

复制id_rsa.pub的内容出来

打开github,进入需要拉取文件的仓库,进入设置标签页

点击Add Deploy key

输入GitHub密码确认

刚添加的公钥是灰色的,还没有被使用

在bootstrap.yml中配置

把id_rsa的全部内容复制出来,放到private-key属性

注意:

  1. uri要用ssh形式的地址
  2. ignore-local-ssh-settings设置为true,忽略本地的ssh配置
  3. passphrase内要配置上面设置的秘钥密码

启动项目后,可以在Github的仓库设置中看到公钥已经被使用,变成了绿色。

至此spring-cloud-config使用ssh连接git就配置完成。


修改秘钥密码

打开Git Bash/Terminal,输入 ls-al ~/.ssh 检查之前是否已经生成了SSH key

如果是这样的那就说明已经生成过秘钥,可以选择修改修改私钥密码(passphrase)
输入 ssh-keygen -p

直接回车继续,输入旧密码,然后输入两次新密码

CentOS7查杀nanoWath挖矿木马

前几天在查看服务器时状态时发现cpu占用率达到了103%

这个VPS主要是拿来玩玩,平时上面并没有什么大的服务再运行,不可能会占满CPU的;用shell客户端连上VPS,执行ps aux,其中一个叫nanoWatch的进程cpu占用率达到了99.5%

直接杀掉这个进程kill -9 17305,再检查进程,没发现异常

过了没几分钟,cpu占用又满了,查看进程,这个进程又出现了;

找到/tmp/nanoWatch这个文件,删掉这个文件,再杀掉进程,过了几分钟,进进程再次出现。

我怀疑是定时启动的任务, crontab -l查看cron计划任务,显示出来了两个定时任务,每5分钟和7分钟执行一次下载文件,我手动把这个文件下下来,是一个脚本

删除定时任务crontab -r,删掉文件,杀掉进程,结束了


过了两天,又出现CPU占用异常。

我之前一直是用root用户并使用20端口进行ssh连接,这是非常不安全的行为,很容易被端口扫描暴力破解密码登录服务器。简单的解决办法如下

[TOC]

修改ssh连接端口

用 root 用户进入 /etc/ssh/

1
2
3
4
cd /etc/ssh/
#用 vi 打开 sshd_config 文件
vim sshd_config
#添加端口20022(22号是默认端口,注释掉也是默认开启的),并解开22端口注释

1
2
3
4
5
6
7
8
9
#重启ssh 
systemctl restart sshd
#查看防火墙规则
firewall-cmd --permanent --list-port
#向防火墙中添加端口
firewall-cmd --zone=public --add-port=20022/tcp --permanent
reaload
#重新加载防火墙规则
firewall-cmd --reload

1
2
#查看20022端口是否添加成功
firewall-cmd --zone=public --query-port=20022/tcp

断开ssh连接,换用20022端口连接
修改/etc/ssh/sshd_config22号端口注释掉

1
2
3
4
#重启ssh
systemctl restart sshd
#查看ssh监听的端口
ss -tnlp|grep ssh

禁用root登入,使用普通用户登入

1
2
3
4
5
#先创建一个普通用户test,同时给test用户设置密码
adduser test
passwd test
#接着禁用root登录(修改sshd_config文件)
vi /etc/ssh/sshd_config

1
2
#重启ssh
Systemctl restart sshd.service