Lỗi thường gặp khi sử dụng SSH key trên Gitlab

Bài viết này là phần 8 trong 9 phần của serie bài viết Cài đặt Gitlab CE trên Ubuntu 18

ToiVietBlog - Lỗi thường gặp khi sử dụng SSH key trên Gitlab. Thực tế, khi vận hành hệ thống Gitlab, bạn có thể gặp rất nhiều lỗi khác nhau.

Bài này mình chỉ liệt kê một số lỗi nhất định mà bạn có thể gặp trong khi vận hành và sử dụng hệ thống Gitlab CE.

Giả định là:

  • Hệ thống Gitlab bạn đã thiết lập cho phép sử dụng cả giao thức HTTPS và SSH, đã thiết lập SSH shell trong file cấu hình của Gitlab.
  • Máy chủ đã mở cổng 22 trên tường lửa, cho phép user kết nối ssh.
loi-thuong-gap-khi-su-dung-ssh-key-tren-gitlab Lỗi thường gặp khi sử dụng SSH key trên Gitlab
Lỗi thường gặp khi sử dụng ssh key trên gitlab.

Remote host identification has changed

Lỗi: trông như thế này.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for git.yourdomain.com has changed,
and the key for the corresponding IP address 192.168.1.11
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:O95IcJNrtrho3qpYv6jC4N7mbBOUgsTcjrb2tWoNMpo.
Please contact your system administrator.

Nguyên nhân: hệ thống Gitlab đã được migrate sang một máy chủ khác hoặc địa chỉ IP thay đổi. Điều này làm cho nhận dạng máy chủ khác so với trên máy tính của người dùng.

Xử lý lỗi: bạn chạy lệnh dưới đây trên máy tính của người dùng. Thay thế usernamegit.yourdomain.com tương ứng với máy tính người dùng và domain hệ thống.

$ ssh-keygen -f "/home/username/.ssh/known_hosts" -R "git.yourdomain.com"

Permission denied (publickey)

Lỗi: lỗi sẽ có nội dung như thế này.

$ git clone git@git.yourdomain.com:user/test.git
Cloning into 'test'...
The authenticity of host 'git.yourdomain.com (192.168.1.11)' can't be established.
ECDSA key fingerprint is SHA256:O95IcJNrtrho3qpYv6jC4N7mbBOUgsTcjrb2tWoNMpo.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'git.yourdomain.com,192.168.1.11' (ECDSA) to the list of known hosts.
git@git.yourdomain.com: Permission denied (publickey).
fatal: Could not read from remote repository.

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

Nguyên nhân: lỗi này là do bạn để ssh key ở một nơi khác so với thư mục mặc định /home/user/.ssh/id_rsa, hoặc key của bạn có tên khác mà không phải là id_rsa.

Xử lý lỗi: để sửa lỗi này, bạn chỉ cần chỉ định key ssh mỗi khi chạy lệnh git.

$ ssh-agent bash -c 'ssh-add /home/user/Desktop/id_rsa; git clone git@git.yourdomain.com:user/test.git'

Too many authentication failures

Mặc dù bạn đã thêm chính xác key ssh nhưng vẫn không thể xác thực vào hệ thống.

Lỗi:

  • Nội dung lỗi trên máy tính của người dùng.
Received disconnect from 192.168.1.11 port 22:2: Too many authentication failures
Disconnected from 192.168.1.11 port 22
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
  • Nội dung lỗi hiển thị trên máy chủ Gitlab.
Aug 4 14:33:49 git sshd[28403]: User git not allowed because account is locked

Nguyên nhân: khi người dùng sử dụng key ssh để connect tới hệ thống Gitlab, người dùng sẽ được chuyển thành user git trên máy chủ. Và lỗi này là vì người dùng đang không thể xác thực được với user git trên máy chủ.

Xử lý lỗi: để xử lý lỗi này, bạn thực hiện các bước sau.

Kiểm tra file /etc/ssh/sshd_config với các giá trị phải như sau.

UsePAM no
PasswordAuthentication no

Nếu giá trị khác 2 dòng trên, bạn thay đổi và restart lại dịch vụ ssh.

# service sshd restart

Tiếp theo, xóa bỏ password của user git.

# passwd -d git

Kết luận

Trên đây thì mình nêu 3 lỗi bạn có thể sẽ gặp trong quá trình vận hành hệ thống Gitlab. Một lúc nào đó, người dùng có thể báo cho bạn những lỗi này. Và bạn biết đấy, bạn có thể xử lý nó dễ dàng.

Tiếp tục đọc serie bài viết«« Phần trước: Migrate Gitlab CE sang máy chủ mớiPhần tiếp theo: Fix lỗi cannot unblock LDAP blocked users »»
0 0 votes
Article Rating
Nhấn vào đây để đánh giá bài này!
[Tổng: 0 - Trung bình: 0]

If you appreciate what we share in this blog, you can support us by:
  1. Stay connected to: Facebook | Twitter | Google Plus | YouTube
  2. Subscribe email to recieve new posts from us: Sign up now.
  3. Start your own blog with SSD VPS - Free Let's Encrypt SSL ($2.5/month).
  4. Become a Supporter - Make a contribution via PayPal.
  5. Support us by purchasing Ribbon Lite Child theme being using on this website.

We are thankful for your support.

«« »»
Theo dõi
Thông báo về
guest
0 Comments
Inline Feedbacks
View all comments