Chỉ định ssh key cho host
TIL
490
ssh
11
White

huydx viết ngày 19/12/2016

Chỉ định ssh key cho host

Background: Tôi sử dụng một vài account bitbucket cho vài mục đích khác nhau, mỗi account lại có một ssh key khác nhau. Hiện tại thì tôi dùng cách như sau:


Host bitbucket.org
  User user1
  Hostname bitbucket.org
  IdentityFile ~/.ssh/id_rsa_bitbucket_user1

Host bitbucket.org
  User user2
  Hostname bitbucket.org
  IdentityFile ~/.ssh/id_rsa_bitbucket_user2

Bình thường thì không sao nhưng hôm nay vào repo của user1 để fetch từ server về thì bitbucket lại báo là unauthorized???
Sử dụng ssh để debug :

$ssh -T -v git@bitbucket.org

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/jp20992/.ssh/id_rsa_bitbucket_user1
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/jp20992/.ssh/id_rsa_bitbucket_user2

logged in as user2

Điểm kì lạ ở đây là logged in as user2, trong khi rõ ràng đã tìm thấy rsa key của user 1.
Như vậy có vẻ là ssh không dừng lại ngay khi đã tìm thấy key đàu tiên. Thử google thì thấy đường link sau: http://superuser.com/questions/268776/how-do-i-configure-ssh-so-it-dosent-try-all-the-identity-files-automatically

Firstly, unlike every other option in ssh_config, ssh does not use the first IdentityFile that it finds. Instead the IdentityFile option adds that file to a list of identities used. You may stack multiple IdentityFile options, and the ssh client will try them all until the server accepts one or rejects the connection.

Second, if you use an ssh-agent, ssh will automatically try to use the keys in the agent, even if you have not specified them with in ssh_config's IdentityFile (or -i) option. This is a common reason you might get the Too many authentication failures for user error. Using the IdentitiesOnly yes option will disable this behavior.

Như vậy là ssh sẽ tìm key một cách greedy cho đến khi server chấp nhận một key, hoặc reject một key khác. Như vậy ở đây ngay cả đã set IdentifyKey là id_rsa_bitbucket_user1 thì vẫn có khả năng ssh sẽ dùng key id_rsa_bitbucket_user2.
Dể fix hành vi này thì chúng ta có thể dùng IdentitiesOnly yes option.

huydx 19-12-2016

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

huydx

115 bài viết.
855 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
135 8
Introduction (Link) là một cuộc thi ở Nhật, và cũng chỉ có riêng ở Nhật. Đây là một cuộc thi khá đặc trưng bởi sự thú vị của cách thi của nó, những...
huydx viết hơn 1 năm trước
135 8
White
109 14
Happy programmer là gì nhỉ, chắc ai đọc xong title của bài post này cũng không hiểu ý mình định nói đến là gì :D. Đầu tiên với cá nhân mình thì hap...
huydx viết gần 3 năm trước
109 14
White
86 10
(Ảnh) Mở đầu Chắc nhiều bạn đã nghe đến khái niệm oauth. Về cơ bản thì oauth là một phương thức chứng thực, mà nhờ đó một web service hay một ap...
huydx viết hơn 2 năm trước
86 10
Bài viết liên quan
White
7 0
Trước đây mình có giới thiệu một cách tiện lợi để nhớ khi SSH vào server tại (Link), hôm nay ngồi mò thấy một mẹo nhỏ nữa cũng khá hay nên chia sẻ ...
Quăng viết gần 2 năm trước
7 0
White
0 0
Copy file from local to another server via SSH bash scp i ssl_file.pem file_copy username@ip.address:path_to_paste_file VietNguyen 07102016
Vie viết hơn 1 năm trước
0 0
White
10 2
Mình có đọc bài viết này http://kipalog.com/posts/CaidatvalamquenvoiAnsible và muốn chia sẻ thêm một số cách cũng như cách tiếp cận một vấn đề từ n...
Quăng viết gần 2 năm trước
10 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
115 bài viết.
855 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!