Bài 8: làm hoài vẫn chưa thuộc bài
Có những sự việc xảy ra trong cuộc sống, trong công việc tuy đơn giản nhưng đôi lúc lại là “điểm mù” đối với não của bạn. Bài này chém gió về điểm mù đó để nhìn nhận một thực tại rằng “nhân vô thập toàn”. Từ đó, mỗi người cần thận trọng trong cách lý luận theo kiểu người khác làm được ta làm được hoặc ta làm được người khác làm được khi đối mặt đối với một sự việc nào đó. Có những cái với người này là dễ dàng, với người khác là không thể cho dù có nỗ lực kiểu gì đi nữa.
Bài này tuy là chém gió nhưng mang hơi hướm kỹ thuật, nên nó sẽ chán ngắt nếu bạn không hiểu VPS là gì, remote bằng gõ lệnh ra sao.
Vấn đề SSH không dùng mật khẩu
KACBT đảm nhận quản trị đám server và VPS cho khách hàng, có thời điểm con số này nếu đếm cái có gần 50 cả thảy. Vì vậy, việc phải remote vào server là việc gần như tuần nào cũng thực hiện vài bận. Những VPS chạy hệ điều hành Windows thì không nói làm gì, nó có mstsc khá đơn giản, dễ sử dụng. Trong khi đó, với những “con máy” chạy một distro Linux nào đó sẽ phải vất vả hơn vì phải “oánh lệnh mỏi tay”.
Mặc định ban đầu khi khách hàng giao VPS cho KACBT quản trị sẽ dùng mật khẩu. Khách thường forward luôn cái email mà bên cho thuê gửi và KACBT tiếp nhận và quản, họ không còn phải lăn tăn gì chuyện VPS ra làm sao, chỉ sử dụng các dịch vụ/ phần mềm chạy trên đó mà thôi.
Cách dùng mật khẩu (Password Authentication) tuy đơn giản nhưng kém an toàn, dễ bị hắc cơ mò ra và quậy banh nóc server cả lên. Chính vì thế, việc đâu tiên cần làm: phải chuyển sang dùng key, gọi đầy đủ là Public Key Authentication. Cách thức: thay vì dùng mật khẩu, tạo sẵn chìa khoá để khi kết nối khỏi phải gõ mật khẩu, vừa mất công gõ, khả năng sai sót cao lại kém an toàn.
Chìa khoá sẽ gồm có khoá công cộng public key và khoá riêng tư/ cá nhân private key. Như tên gọi, khoá công cộng có thể lộ ra mà không lo mất an toàn, dễ hình dung trong đời thật là nó khá giống cái ổ khoá trên cửa nhà bạn, còn khoá riêng đó là chìa khoá của bạn, cần giữ kỹ.
Vì có lúc phải cập nhật hàng loạt máy cùng lúc nên KACBT cũng có sử dụng nhanh kết nối mật khẩu từ máy này qua máy kia mà không còn dùng client ngay trên máy desktop mình ngồi. Chính vì thế mà có sự mù mờ giữa client và server. Do đó, bài này note lại để có thể dùng về sau cho nhanh.
Ghi lại các bước cho dễ nhớ
Đầu tiên, ở client (vì KACBT dùng LinuxMint nên khá dễ) - tức máy đang ngồi (nó cũng có thể là một con VPS / server từ xa nào đó, không quan trọng, miễn nó đang đóng vai trò client) tạo cặp khoá public và private với lệnh:
ssh-keygen -t ed25519
. Lệnh này sẽ tạo ra 2 file: id_ed25519 (private key) và id_ed25519.pub (public key) mặc định sẽ nằm trong thư mục ~/.ssh của user hiện tại.Gõ lệnh:
ssh-copy-id username@remote_host
: thay user và địa chỉ IP của server vô username và remote_host, dùng thông số mà trước đó dùng mật khẩu đã kết nối thành công qua lệnh ssh. Lệnh này sẽ hỗ trợ việc chép file lên server, nối key vào file ~/.ssh/authorized_keys nằm trên server. Ta cũng có thể dùng lệnh rsync, scp để chép nhưng phải nhớ cat vào file ~/.ssh/authorized_keys sau khi chép lên server.Ở client gõ lệnh:
vi ~/.ssh/config
để mở file ra, thêm vào một khối trông giống như sau:
Kết nối vào server gõ lệnh:
/etc/ssh/sshd_config
và thiết lập giá trị PasswordAuthentication no và PubkeyAuthentication yes.Đừng quên khởi động lại SSH Server trên server với lệnh:
sudo systemctl restart sshd
Giờ đây, chỉ cần gõ ssh bulldog đã có thể thưởng thức thành quả:
Lần sau, KACBT chỉ cần vào đọc ở đây thay vì chạy loạn lên với các bài hướng dẫn hoặc AI trả lời có sai sót.
Túm lại, hãy xem chuyện hay dở ở đời có giống chuyện bắt con cá leo cây?