hoan hỉ

Hướng dẫn cấu hình password-less SSH

Trong một số trường hợp bạn cần truy cập từ một Linux server sang một Linux server khác mà không muốn phải điền password. Ví dụ:

– Đồng bộ dữ liệu từ 1 server sang nhiều server sử dụng rsync
– Quản lí hệ thống bao gồm một lượng lớn thiết bị
– Thực hiện tác vụ nào đó cần truy cập từ xa sử dụng shell script

Để dễ tưởng tượng, mình sẽ thực hiện cấu hình như mô hình dưới. Bạn đứng từ server A và muốn truy cập SSH vào server B mà không phải điền password. Việc cấu hình sẽ được thực hiện trên server A.

password-less SSH

Môi trường: CentOS 6.4

1. Tạo public key & private key

[root@ServerA ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
64:67:70:66:98:c4:d5:34:e9:ec:a2:f6:50:ce:8c:e8 root@ServerA
The key’s randomart image is:
+–[ RSA 2048]—-+
| oo+=oo. |
| += o. |
| o oo |
| o o o |
| S .. |
| . *. . |
| . o.+. |
| . o. |
| E. .. |
+—————–+

Ở mục điền passphrase, không cần gõ gì cả, chỉ cần ấn Enter là được.

Lệnh ssh-keygen sẽ tạo ra 1 cặp gồm 1 public key và 1 private key cho server A. Bước tiếp theo chúng ta chỉ việc copy public key của Server A vào file .ssh/authorized_keys của Server B. Hay nói cách khác là bảo ServerB rằng ServerA luôn được phép truy cập với public key đã trao đổi mà không cần hỏi password:

2. Copy public key

[root@ServerA ~]# ssh-copy-id -i .ssh/id_rsa.pub root@ServerB
root@ServerB’s password:
Now try logging into the machine, with “ssh ‘root@ServerB'”, and check in:

.ssh/authorized_keys

to make sure we haven’t added extra keys that you weren’t expecting.

Gõ lại password của ServerB khi được hỏi, nếu chính xác thì lệnh ssh-copy-id sẽ làm các việc còn lại và thông báo bạn thử truy cập vào ServerB.

Thông thường nếu bạn không muốn dùng lệnh ssh-copy-id thì có thể dùng scp để copy bằng tay nội dung của file id_rsa.pub vào file authorized_keys.

Lưu ý: với các bước cấu hình như trên, các bạn chỉ có thể dùng user “root” trên ServerA để truy cập vào ServerB bằng user “root”. Nếu bạn thay đổi user trên 1 trong 2 server thì vẫn sẽ bị hỏi password. Vì thế nếu muốn dùng user khác các bạn vẫn sẽ phải cấu hình cho user đó.

Written by hoanvu

January 15, 2014 at 10:52 am

%d bloggers like this: