解决因为ssh秘钥权限问题导致的Connection closed by 192.168.1.31 port 2222

概述

事情是这样的, 其实是gitlab上不能使用ssh去拉取代码,我一直以为是防火墙的问题,后来测试端口是开着的,但是就是一直连接拒绝,所以这个就很蛋疼,后来才想到自己以前是修改过gitlab俩面文件权限的

找错方法

首先看下日志,gitlab的ssh日志目录在下面这个地方,当然我是容器里面的

/home/docker/gitlab/logs/sshd

下面是报错的信息

1
2
3
4
5
6
7
8
2018-08-03_13:09:01.63964 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2018-08-03_13:09:01.63965 @ WARNING: UNPROTECTED PRIVATE KEY FILE! @
2018-08-03_13:09:01.63966 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2018-08-03_13:09:01.63967 Permissions 0771 for '/etc/gitlab/ssh_host_ed25519_key' are too open.
2018-08-03_13:09:01.63968 It is required that your private key files are NOT accessible by others.
2018-08-03_13:09:01.63969 This private key will be ignored.
2018-08-03_13:09:01.63970 key_load_private: bad permissions
2018-08-03_13:09:01.63973 Could not load host key: /etc/gitlab/ssh_host_ed25519_key

这样就很明显了就是权限问题,使用docker logs去看日志明显是不行的,把这个文件的权限修改成为0771就可以啦

欢迎关注Bboysoul的博客www.bboysoul.com
Have Fun