Asked Jun 7th, 2:30 AM 82 0 3
  • 82 0 3
0

Gitlab bị permission denied mỗi khi mở terminal mới hoặc reboot máy

Share
  • 82 0 3

Như tiêu đề thì mình dùng SSH cho gitlab thì mỗi khi mình reboot lại máy hoặc mở terminal mới thì lại phải chạy lại eval "$(ssh-agent -s)"ssh-add ~/.ssh/.... để key hoạt động được. Mình có search được nguyên nhân nhưng lại không thấy có giải pháp để không phải chạy lại lệnh. Mọi người từng bị rồi cho mình xin giải pháp với

3 ANSWERS


Answered Jun 7th, 2:40 AM
+3

Có thể bạn sử dụng nhiều SSH Key không config nên mỗi lần reboot thì lại không ssh được. Bạn thử thêm config cho ssh vào file ~/.ssh/config để mỗi lần sau khi khởi động lại thì nó đọc lại cấu hình từ file đó ra. Ví dụ:

# SSH config template:
Host <server-alias>
  Hostname <domain | Static IP Address>
  Port 22
  User <username>
  IdentityFile <path-to-you-SSH-private-key>

# SSH config example:
Host my-server
  Hostname 192.168.2.23
  Port 22
  User TuanAnh9996
  IdentityFile ~/.ssh/id_rsa

Câu lệnh để SSH vào server sau khi thêm config cho my-server sẽ trở lên ngắn gọn như sau:

ssh my-server
Share
Tuan Anh Nguyen @TuanAnh9996
Jun 7th, 2:47 AM
Tuan Anh Nguyen @TuanAnh9996
Jun 7th, 2:48 AM

mình có file config rồi, bạn xem thử ok chưa nhỉ vì file này mình tạo từ đầu rồi nhưng vẫn bị.

Host gitlab.***.vn
  User anhnt9996
  Port 2222
  IdentityFile ~/.ssh/gitlab_***
  Preferredauthentications publickey
0
| Reply
Share
Jun 7th, 2:50 AM

@TuanAnh9996 Sao config không có hostname nhỉ?

0
| Reply
Share
Tuan Anh Nguyen @TuanAnh9996
Jun 7th, 2:51 AM

@huukimit mình thấy trên doc nó cũng không có nên mình cũng không cho vào, chạy vẫn ok mà chỉ bị mở terminal mới thì chết 😃)

0
| Reply
Share
Tuan Anh Nguyen @TuanAnh9996
Jun 7th, 2:55 AM

@huukimit vẫn không ăn thua bạn ạ 😦(

Host gitlab.***.vn
  Hostname gitlab.***.vn
  User anhnt9996
  Port 2222
  IdentityFile ~/.ssh/gitlab_***
  Preferredauthentications publickey
0
| Reply
Share
Jun 7th, 3:05 AM

@TuanAnh9996 bạn dùng git phải không nhỉ? Chỗ User bạn sửa thành User git xem 🤔

0
| Reply
Share
Tuan Anh Nguyen @TuanAnh9996
Jun 7th, 3:08 AM

@phuongth lúc đầu mình cũng để user git, sau khi up vào đây thì mới sửa lại thành username như hương dẫn bạn ạ 😦

0
| Reply
Share
Jun 7th, 3:19 AM

@TuanAnh9996 à mình mới đọc lại câu hỏi, ý bạn là mỗi lần bật máy lại phải ssh-add lại lần nữa chứ không phải là không dùng được key phải không nhỉ. Bạn thử thêm dòng AddKeysToAgent yes vào ssh config xem.

0
| Reply
Share
Tuan Anh Nguyen @TuanAnh9996
Jun 7th, 3:33 AM

@phuongth không được mới buồn chứ

0
| Reply
Share
Answered Jun 7th, 2:34 AM
+1

Bạn có thể tạo thêm 1 file đặt tên là config và để trong folder .ssh/ với nội dung như sau:

Host gitlab.com
  HostName gitlab.com
  User username (username của bạn)
  IdentityFile ~/.ssh/id_rsa (đường dẫn đến private key của bạn)

Như vậy sau này khi bạn thao tác với gitlab thì nó sẽ tự biết tìm đến key tương ứng của bạn

Share
Tuan Anh Nguyen @TuanAnh9996
Jun 7th, 2:50 AM

file config mình có tạo từ đầu rồi nhưng ko ăn thua bạn ạ

Host gitlab.***.vn
  User anhnt9996
  Port 2222
  IdentityFile ~/.ssh/gitlab_***
  Preferredauthentications publickey
0
| Reply
Share
Answered Jun 7th, 10:20 AM
0

Không thấy có phải ý bạn nói không, nhưng có cách thiết lập thế này mình vẫn hay dùng. Đầu tiên ở 1 Repo chọn SSH, xem account là gì và port sử dụng là gì. Như của mình là Git và Port là 1022 Screenshot_1.png Sau đó thì lấy public key của máy ở file ~/.ssh/id_rsa.pub và đáp vào SSH Key trên Account gitlab. Ở local thì setting file ~/.ssh/config như sau Host <host_name> HostName <ip_add> User git Port 1022

Share
Tuan Anh Nguyen @TuanAnh9996
Jun 7th, 4:19 PM

bạn xem cái này ở chỗ nào vậy? mình xem ở trong chỗ clone thì ko có port

0
| Reply
Share
bienhoang @bienhoang
Jun 8th, 3:53 AM

@TuanAnh9996 Xem ở 1 repo bất kỳ. Nếu không có port, thì mặc định sẽ là 22. Do mình dùng Docker nên mình phải dùng 1022 để không trùng với Host OS.

0
| Reply
Share