Yêu cầu thg 6 7, 2019 2:30 SA 305 0 3
  • 305 0 3
0

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

Chia sẻ
  • 305 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 CÂU TRẢ LỜI


Đã trả lời thg 6 7, 2019 2:40 SA
+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
Chia sẻ
Avatar Nguyen Tuan Anh @TuanAnh9996
thg 6 7, 2019 2:47 SA
Avatar Nguyen Tuan Anh @TuanAnh9996
thg 6 7, 2019 2:48 SA

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
thg 6 7, 2019 2:50 SA

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

Avatar Nguyen Tuan Anh @TuanAnh9996
thg 6 7, 2019 2:51 SA

@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 😃)

Avatar Nguyen Tuan Anh @TuanAnh9996
thg 6 7, 2019 2:55 SA

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

Host gitlab.***.vn
  Hostname gitlab.***.vn
  User anhnt9996
  Port 2222
  IdentityFile ~/.ssh/gitlab_***
  Preferredauthentications publickey
thg 6 7, 2019 3:05 SA

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

Avatar Nguyen Tuan Anh @TuanAnh9996
thg 6 7, 2019 3:08 SA

@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 ạ 😦

thg 6 7, 2019 3:19 SA

@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.

Avatar Nguyen Tuan Anh @TuanAnh9996
thg 6 7, 2019 3:33 SA

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

Đã trả lời thg 6 7, 2019 2:34 SA
+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

Chia sẻ
Avatar Nguyen Tuan Anh @TuanAnh9996
thg 6 7, 2019 2:50 SA

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
Đã trả lời thg 6 7, 2019 10:20 SA
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

Chia sẻ
Avatar Nguyen Tuan Anh @TuanAnh9996
thg 6 7, 2019 4:19 CH

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

Avatar bienhoang @bienhoang
thg 6 8, 2019 3:53 SA

@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.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí