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.
Môi trường: CentOS 6.4
1. Tạo public & 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 ServerA
vào file .ssh/authorized_keys
của ServerB
. 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 đó.
« Homepage