Khắc Phục Lỗi Key Exchange Trong Kết Nối SSH
Sự kiện báo lỗi trao đổi khóa thất bại thường xuất hiện khi máy chủ đã loại bỏ các thuật toán cổ điển kém an toàn, trong khi công cụ người dùng chưa hỗ trợ chuẩn mã hóa hiện đại. Có hai hướng giải quyết:
- Bổ sung thuật toán tương thích ngược: Mở file cấu hình daemon bằng văn soạn thảo, tìm đến phần cuối và chèn dòng tham số sau:
# /etc/ssh/sshd_config
KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Sau đó nạp lại dịch vụ:sudo systemctl restart sshd
- Nâng cấp client: Di chuyển sang các ứng dụng hỗ trợ TLS 1.2+/ChaCha20-Poly1305 như MobaXterm, WindTerm hoặc phiên bản Xshell mới nhất.
Tăng Tốc度 Lấy Gói Phần Mềm Trên Ubuntu
Thay đổi nguồn phản hồi gói tin từ máy chủ quốc tế sang mirror nội địa giúp giảm đáng kể thời gian chờ đợi. Quy trình thực hiện an toàn như sau:
# Sao lưu nguyên bản danh sách nguồn
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# Thay thế host archive mặc định bằng mirror tối ưu
# Tham khảo đầy đủ tại: https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/
sudo sed -i 's|http://.*archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn/ubuntu|g' /etc/apt/sources.list
# Làm tươi cache và cập nhật metadata
sudo apt update
Liên Kết Nguồn Phân Phối OpenJDK 8
Các kho triển khai chính thức cung cấp build ổn định và kiểm thử kỹ lưỡng:
- Cửa hàng chính thức từ Microsoft:
https://learn.microsoft.com/zh-cn/java/openjdk/download#openjdk-8 - Kho Temurin bởi Adoptium Foundation:
https://adoptium.net/zh-CN/temurin/archive/?version=8
Cấu Hình Đồng Bộ Thời Gian Với Chrony Hoặc NTP
Đảm bảo clock hệ thống luôn lệch thấp hơn vài mil giây so với UTC. Dưới đây là kịch bản triển khai tự động hóa:
#!/bin/bash
NTP_SERVER="pool.ntp.org"
TIMEZONE_ID="Asia/Ho_Chi_Minh"
# --- Khối 1: Chrony (Mặc định trên nhiều distro hiện đại) ---
sync_chrony() {
sudo apt install -y chrony ntpdate 2>/dev/null || sudo yum install -y chrony wntp
echo "server $NTP_SERVER iburst minpoll 5 maxpoll 6" | sudo tee -a /etc/chrony/chrony.conf > /dev/null
# Force sync trước khi bật service để tránh drift lớn
sudo ntpdate "$NTP_SERVER"
sudo systemctl enable --now chronyd
chronyc sources -v
}
# --- Khối 2: NTP Truyền Thống ---
sync_ntp_legacy() {
sudo apt install -y ntp ntpdate 2>/dev/null || sudo yum install -y ntp
echo "server $NTP_SERVER iburst" | sudo tee -a /etc/ntp.conf > /dev/null
sudo ntpdate "$NTP_SERVER"
sudo systemctl enable --now ntpd
ntpq -p
}
# --- Thiết Lập Giờ Phần Cứng & Múi Giờ ---
echo "SYNC_HWCLOCK=yes" | sudo tee -a /etc/sysconfig/ntpd > /dev/null
sudo hwclock -w
sudo timedatectl set-timezone "$TIMEZONE_ID"
Kết Nốifilesystem Và Giải Thích Cờ Bảo Mật
Việc định nghĩa mount persistent trong `/etc/fstab` nên tuân thủ cú pháp bảng sau. Sử dụng UUID thay vì đường dẫn thiết bị vật lý để tránh sai lệch khi thay đổi controller:
<thiết_bịhoặc_uuid> <đường_dẫn> <kiểu_hệ_thống> <cài_đặt_mount> <dump> <pass>
/dev/mapper/vg-lv_tmp /tmp ext4 defaults,nodev,nosuid 0 0
UUID=a1b2c3d... /var/opt ext4 defaults,noatime,nosuid 0 2
nfs-share.example.com:/ /mnt/data nfs defaults,bg,hard,intr 0 0
Chi tiết ý nghĩa các tham số bảo mật:
nodev: Cấm tạo node character/block device ngay trên partition được mount, ngăn chặn tấn công giả mạo tầng harddisk.nosuid: Vô hiệu hóa bit SUID/SGID, đảm bảo process chạy theo đúng quyền của user đang đăng nhập, không leo thang đặc quyền.bg: (Dành cho NFS) Nếu network chưa sẵn sàng lúc boot, systemd sẽ đẩy mount task ra background thread, tránh treo toàn bộ quá trình khởi động.
Dò tra topology đĩa: lsblk -f hoặc blkid -u filesystem.
Cài Đặt Docker Engine Và Plugin Compose
Quy trình cấu hình container runtime trên nền tảng dựa trên RPM:
# 1. Thêm repository và giải quyết dependency
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
# 2. Triển khai engine và tắt firewall mặc định
sudo yum install -y docker-ce
sudo systemctl disable --now firewalld
# 3. Cấp quyền non-root runner
USER_NAME="appops"
sudo usermod -aG docker "$USER_NAME"
# 4. Tùy chỉnh daemon.json (Tối ưu cho production)
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"storage-driver": "overlay2",
"dns": ["8.8.8.8", "1.1.1.1"],
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://docker.m.daocloud.io"
],
"features": {
"buildkit": true
},
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 65536,
"Soft": 65536
}
}
}
EOF
# 5. Kích hoạt và kiểm thử
sudo systemctl daemon-reload
sudo systemctl enable --now docker
docker run --rm hello-world</code>
Hoạt hóa Docker Compose dưới 2 dạng tích hợp:
- Plugin chính thức:
sudo yum install -y docker-compose-plugin→ gọi bằngdocker compose up -d - Binary riêng biệt: Tải artifact từ GitHub Releases, gán
chmod +x, liên kết tượng trưng vào/usr/local/bin/docker-composevà xác minh bằngdocker-compose --version