Gitlab bị permission denied mỗi khi mở terminal mới hoặc reboot máy
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)" và 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
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
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
@TuanAnh9996 Sao config không có hostname
nhỉ?
@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 )
@huukimit vẫn không ăn thua bạn ạ (
Host gitlab.***.vn
Hostname gitlab.***.vn
User anhnt9996
Port 2222
IdentityFile ~/.ssh/gitlab_***
Preferredauthentications publickey
@TuanAnh9996 bạn dùng git phải không nhỉ? Chỗ User bạn sửa thành User git
xem
@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 ạ
@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.
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
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
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 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
bạn xem cái này ở chỗ nào vậy? mình xem ở trong chỗ clone thì ko có port
@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.