Vinova tuyển lập trình viên Mobile & Web ở Hà Nội, lương $300-1000

Article: Dùng key để kết nối vào server qua SSH 1585

Linux, Solaris
thanhleminh.myopenid.com
Updated over 4 years ago

Ngoài lúc cài OS vào server, thường chẳng khi nào người ta cắm bàn phím, và màn hình (không dùng chuột, vì để tăng tốc độ xử lí, rất hiếm khi người ta cài chế độ đồ họa lên *nix server) vào server để thao tác trực tiếp. Có 2 lí do. Khách quan: không được sờ tay vào server (vì ở xa hoặc vì người khác không cho). Chủ quan: server kêu rất to, ngồi cạnh làm việc một lúc là ù cả tai.

Sau khi cài OS xong, sẽ truy cập từ xa vào server để thao tác. Khoảng 10 năm trước, dùng TELNET để kết nối là cách phổ biến. Còn hiện nay, đó là SSH.

Bạn sợ hacker mò ra username và password của server? Nhiều công ty sợ và họ dùng cách rất chuối là đổi SSH từ port 22 sang port khácYell. Nếu dùng SSH chỉ theo chế độ dùng key, thì không còn sợ nữa. Vì như vậy sẽ không dùng password nữa. Mà đã không có password nữa thì đâu còn sợ lộ passwordLaughing!

SSH có rất nhiều tính năng: mã hóa dữ liệu khi truyền qua mạng, nén dữ liệu để truyền nhanh hơn, port forwarding, forward lệnh của XServer... Nhiều người biết là có thể tự động login trong mạng LAN bằng .rhosts. Nhưng về vấn đề bảo mật thì cách này không được khuyến khích.

Chúng ta thử dùng tính năng DSA và RSA của SSH để login mà không cần password (tự động login) nha. Tiện lắm đấy. Ví dụ: có 2 máy, A dùng làm server tính toán, B dùng để viết chương trình, nghe nhạc... Để login từ B sang A, nếu phải gõ password như bình thường thì rất mất công.

Tổng quan về cách hoạt động

Public key (khóa công khai) đặt ở server, private key đặt ở máy client của mình. Khi login, 2 key sẽ được khớp thử với nhau. Nếu khớp thì login thành công.

Server phải là *nix (Solaris, FreeBSD, Linux), client có thể là *nix hoặc Windows. Dưới đây là hướng dẫn cho client là *nix. Windows còn dễ hơn nhiều. Trên Windows có thể dùng puttygen để tạo key (nhớ copy phần text trong hộp thoại thành public_key) rồi dùng pagent để quản lý key và bước cuối là dùng putty để kết nối vào server.

Tạo key

SSH có 2 version. SSH1 dùng RSA key, SSH2 dùng DSA key. *nix mới bây giờ đều cài sẵn SSH2.

Local$ cd ~ [Enter]
Local$ mkdir .ssh [Enter]
Local$ chmod 700 .ssh [Enter] (<- chú ý)
Local$ ssh-keygen -t dsa [Enter]
Generating public/private dsa key pair.
Enter file in which to save the key (/home/foo/.ssh/id_dsa): [Enter]
Enter passphrase (empty for no passphrase) [Enter]
Enter same passphrase again: [Enter]
The key fingerprint is:
Your identification has been saved in /home/foo/.ssh/id_dsa
Your public key has been saved in /home/foo/.ssh/id_dsa.pub
00:00:00:00:00:00:00:00:00:00:00:00:00:00 foo@Local
Local$

Chép public key sang server

Bạn phải tìm cách an toàn nào đó chép file sang server, ví dụ:

Local$scp ~/.ssh/id_dsa.pub foo@remote:/home/foo [Enter]

Sau đó phải login vào server để điều chỉnh:

Local$ ssh foo@Remote
Remort$ mkdir .ssh
Remort$ chmod 700 .ssh/ (<- chú ý)
Remort$ cd .ssh/
Remort$ mv ~/id_dsa.pub authorized_keys2
Remort$ chmod 600 authorized_keys2 (<- chú ý)

Kết nối thử vào server

Local$ ssh foo@Remote [Enter]

Nếu không bị báo lỗi gì, thì bạn đã kết nối được với server mà không cần gõ password!

Để tự động hoá bước thêm key lúc khởi động bạn có thể dùng keychain để lưu nhiều key vào session.

Không cho login vào server bằng password

Như vậy hiện tại có thể login vào server bằng cả password và key. Để bảo mật cho server, ta cần tắt chế độ login bằng password:

  • Sử tập tin /etc/ssh/sshd_config, sửa PasswordAuthentication yes thành PasswordAuthentication no.
  • Khởi động lại SSH service: /etc/init.d/sshd restart

Xong, nếu bây giờ server chỉ mở mỗi cổng 22 cho SSH thì hacker hết đường làm ăn nháLaughing.

Tham khảo: OpenSSHを使って,パスワードなしのログイン

1 2 3 4 

Editors
nguoitapdich.myopenid.com 35
tnd.myopenid.com 17
thanhleminh.myopenid.com

Comments

naphuonghic.myopenid.com
over 4 years ago
Chưa hiểu lắm, trang kia viết bằng tiếng nhật, hức hức
nguoitapdich.myopenid.com 35
over 4 years ago

Bạn biết đó là tiếng Nhật là giỏi quá rồiTongue out.

Các bài viết ở trang web này viết theo triết lí tiến hóa. Nghĩa là ngay từ đầu thì nội dung rất có thể chưa hoàn chỉnh (nên bạn "chưa hiểu lắm"), nhưng dần dần sẽ được cải thiện (bởi 1 hoặc nhiều người, vì đa số đa số người tạo topic đều cho phép người khác sửa).

You must login to be able to comment

Uploaded files

No file uploaded yet

You must login to be able to upload

Nhà tài trợ:

Mọi người đều tự do viết bài, sửa bài của người khác, và bình luận ở trang web này. Bạn muốn chủ động tạo bài mới để chia sẻ kinh nghiệm với mọi người? Xin click link ở dưới.

Create new content