SSH là giao thức thông dụng nhất để kết nối đến server (VPS hay Cloud server).
Trong hướng dẫn này chúng ta sẽ sử dụng Docker để tạo một môi trường server ảo, từ đó có thể thực hành devops cơ bản mà không cần phải thuê cloud server.
Server ảo này tương tự như một instance EC2, sử dụng Ubuntu 18.04. Khi tạo 1 EC2 instance thường AWS sẽ cung cấp cho chúng ta 1 file pem để có thể ssh connect đến server. Tương tự, ở đây chúng ta cũng có 1 file pem có sẵn dành cho mục đích test.
Docker image: sun7pro/ssh-test-server:ubuntu18.04.
Các bước thực hành:
-
Tải file pem để connect vào server ảo tại đây
Trước khi sử dụng, cần phải chmod lại file pem với quyền 400 hoặc 600, tức là chỉ cho phép user owner có quyền đọc/ghi, các user khác không có bất cứ quyền gì. Nếu không ssh sẽ thông báo lỗi:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for 'ubuntu_id_rsa' are too open.
Change mod:
chmod 600 ubuntu_id_rsa
-
Khởi chạy docker container
docker run -d --name=ssh-ubuntu18 -p 2222:22 sun7pro/ssh-test-server:ubuntu18.04
Muốn khởi động lại container:
docker restart ssh-ubuntu18
Hoặc xóa để tạo lại container:
docker stop ssh-ubuntu18 docker rm ssh-ubuntu18
SSH server chạy ở cổng 22 bên trong container và được publish ra ngoài host machine ở cổng 2222. Như vậy chúng ta có ssh server với config như sau:
Host ssh-ubuntu18 HostName 0.0.0.0 Port 2222 User ubuntu IdentitiesOnly yes IdentityFile /home/ubuntu/Projects/devops-basic/ubuntu_id_rsassh ssh-ubuntu18
Hoặc kết nối trực tiếp không qua ssh-config:
ssh -o IdentitiesOnly=yes -i ./ubuntu_id_rsa ubuntu@0.0.0.0 -p 2222
-
Server is up Sau khi bạn đã kết nối được vào Ubuntu server, bạn có thể tiếp tục thực hành cài phần mềm, cài LAMP stack, tool theo dõi hệ thống, thực hành Ansible,...
-
Your turn :D