下文要说的这台gitlab服务器是部署在阿里云上的。阿里云根据他自己的大数据系统,如果发现某台服务器突然在不常出现的地方登录,就会自动发短信告警。


国庆期间,突然同事在工作组里发消息说阿里云提示gitlab在江西登录过一次,运维人员立马进行排查。

vi /var/log/secure 找到可疑的IP,如下图:

wKiom1fyYeWCPj5ZAADAdb8DNEc742.jpg

可以看出是git账户通过秘钥登录的。


补充一下,刚开始没注意是通过秘钥登录的,以为是服务器的密码登录验证功能没有关闭导致的,就编辑/etc/ssh/sshd_config把各个安全参数都显式的开启了。【槽点1:修改配置文件前应该先stat命令 看下文件的状态,这样便于排查是否存在被***的可能性】


当时也没搞清楚这个git用户是为何在异地登录的,没仔细考虑就先把git账户禁用了(修改/etc/passwd 将git用户的改成了/bin/false),防止它再次登录,另外在iptables上也DROP掉这个IP。


下午,正打算git clone 下载些代码到本地,发现git clone报错了,无法下载文件(忘记当时的截图被我放哪里去了,囧)。联想到可能是上午禁用git账户导致的故障。

登录gitlab服务器,将git账户再次启动。继续git clone,发现可以正常下载代码了。


这么说的话,阿里云报警提示江西登陆git,估计是某位同事回老家使用了git同步代码了,

整个过程只是虚惊一场,但我们也有必要看下为何会出现上述的这一些列的情况。


登录到gitlab服务器

# su - git

# cd .ssh

# ll 可以看到authorized_keys这个文件

# vim authorized_keys 

可以看到authorized_keys文件里面都是些公钥(部分截图如下)

wKiom1fyZP6AIgAlAAEVlQFmmn4007.jpg

原因:

实际上,我们登陆进gitlab的网页后台,每次添加的公钥,在服务器端就是添加到git账户下面的,因此每次git clone 或者git push 这些操作都是相当于通过密钥登陆git账户到服务器上执行的。

所以我们在/var/log/secure里面看到很多的git 账户使用密钥登陆的信息。



完。


还有一个关于gitlab的笔记姊妹篇(2):http://lee90.blog.51cto.com/10414478/1859622