SSH trên Synology là gì, và vì sao nó lại là cửa hậu ai cũng quên khóa
SSH (Secure Shell) là kênh dòng lệnh để chui thẳng vào hệ điều hành DSM, bỏ qua giao diện web. Cần chạy script backup, debug một service lỗi, hay làm việc gì đó mà Package Center không có nút bấm cho — SSH là cửa sau bạn mở ra để làm việc đó. Ngặt nỗi cái cửa này mặc định khóa bằng mật khẩu, mà mật khẩu thì là thứ máy tính khác có thể ngồi gõ thử cả triệu lần một ngày, còn bạn thì chỉ gõ nhầm được vài lần trước khi bực mình.
SSH key authentication thay ổ khóa bằng một cặp chìa mã hóa: một chìa riêng (private key) giữ trên máy bạn, một chìa công khai (public key) đưa lên NAS. Không có chìa riêng, có gõ đúng cả từ điển mật khẩu cũng vô ích — vì NAS không còn hỏi mật khẩu nữa.
Ba tình huống hay gặp nhất khiến người ta phải làm bài này:
- Mở SSH ra Internet để backup từ xa qua rsync, rồi một hôm tò mò mở Security Advisor lên xem — hàng trăm lượt đăng nhập SSH thất bại mỗi ngày từ IP lạ tận đâu bên kia bán cầu.
- Dùng NAS làm target cho script CI/CD hay git server nội bộ, cần SSH tự động chạy bằng cron lúc nửa đêm — không có ai ngồi gõ mật khẩu hộ máy.
- Vừa đọc tin có chiến dịch brute-force SSH quy mô lớn nhắm vào NAS Synology bị lộ ra Internet, giật mình đi kiểm tra máy nhà mình có nằm trong tầm ngắm không.
So với việc chỉ đặt mật khẩu SSH thật dài khó đoán, SSH key là lớp phòng thủ riêng cho đường SSH — thứ mà 2FA của Synology chưa bao giờ chạm tới.

Vì sao SSH cần một lớp phòng thủ riêng, tách khỏi 2FA của DSM
Nhiều người tưởng bật 2FA cho tài khoản DSM là xong việc, mọi đường vào NAS đều an toàn. Không phải vậy. 2FA của Synology chỉ áp dụng cho đăng nhập qua giao diện web DSM — SSH không đi qua lớp xác thực đó. Bật 2FA xong mà SSH vẫn mở ra Internet với đăng nhập bằng mật khẩu thuần túy, bạn vẫn đang để ngỏ một cánh cửa dò mật khẩu hoàn toàn không được 2FA che chắn.
Cũng vì lý do đó, các chiến dịch botnet dò mật khẩu NAS Synology hàng loạt vẫn nhắm vào SSH (và các dịch vụ khác như DSM login, FTP) chứ không cần vượt qua 2FA — chúng chưa bao giờ phải đối đầu với nó. Giải pháp ở đây không phức tạp: khóa hẳn đường mật khẩu cho SSH, chỉ cho vào bằng key, rồi thêm Auto Block làm lớp chặn thứ hai cho phần còn sót lại (dò tài khoản khác, quét cổng vu vơ).
| Lớp bảo vệ | 2FA DSM | SSH Key + Auto Block |
|---|---|---|
| Đăng nhập DSM (web) | ✓ | ✗ (không cần) |
| Đăng nhập SSH | ✗ | ✓ |
| Chặn dò mật khẩu SSH | ✗ | ✓ |
| Chạy tự động qua cron | ✗ (cần OTP) | ✓ |
Vì sao chọn cách làm này: GUI trước, Terminal chỉ khi bắt buộc
Không có package nào trong Package Center làm việc này thay bạn được. SSH key authentication là tính năng của chính sshd (daemon SSH có sẵn trong DSM), cấu hình qua Control Panel và một file cấu hình hệ thống, không phải chuyện "cài thêm phần mềm" rồi bấm Next liên tục.
Bài này ưu tiên bấm-chọn trong DSM tối đa, chỉ dùng Terminal cho ba việc DSM chưa có nút GUI: tạo cặp khóa, và bước tắt đăng nhập bằng mật khẩu. Đưa public key lên NAS thì dùng File Station thay vì gõ vi trong Terminal — mở file text trong trình soạn thảo dòng lệnh mà chưa quen phím tắt là kiểu dễ tự làm hỏng file cấu hình nhất, không cần thiết phải mạo hiểm.
Chuẩn bị trước khi bắt đầu
- Quyền quản trị (admin) trên DSM để vào Control Panel.
- Một máy client: Windows dùng PuTTY/PuTTYgen, Mac/Linux có sẵn
ssh-keygentrong Terminal. - Địa chỉ IP LAN của NAS (hoặc domain nếu đã cấu hình DDNS/QuickConnect) để test kết nối.
- 10-15 phút không bị ai làm phiền — bước tắt password authentication nên làm gọn một mạch, tránh nửa chừng bỏ dở.
Bước 1: Bật SSH service
Vào Control Panel → Terminal & SNMP → tab Terminal, tick Enable SSH service. Port mặc định là 22.
Khuyến nghị đổi sang một port khác (ví dụ 2222, hay số nào bạn nhớ được) thay vì để nguyên 22. Nói thẳng luôn: đổi port không phải là bảo mật thật sự — ai quét cổng kỹ vẫn tìm ra port SSH của bạn bình thường. Cái nó làm được là giảm đáng kể lượng bot dò cổng 22 mặc định, log đỡ rác, Auto Block đỡ phải làm việc vì những lượt quét vu vơ không tìm thấy gì ở cổng 22 để mà thử.

Bước 2: Bật user home directory
Bước này nằm khá sâu nên hay bị bỏ qua, nhưng lại là điều kiện bắt buộc — không có thư mục home thì không có chỗ chứa file authorized_keys, key có xịn cỡ nào cũng vô dụng.
Vào Control Panel → User & Group → tab Advanced, tick Enable user home service. Sau khi bật, mỗi user sẽ có thư mục riêng tại /volume1/homes/{tên_user}.
Bước 3: Tạo cặp khóa SSH trên máy client
Trên Mac hoặc Linux, mở Terminal và chạy:
ssh-keygen -t ed25519 -C "ten@nas"Ed25519 là thuật toán khóa hiện đại, nhanh và an toàn, nên dùng làm mặc định. Nếu client cũ không hỗ trợ ed25519, dùng RSA 4096-bit thay thế:
ssh-keygen -t rsa -b 4096Lệnh sẽ hỏi nơi lưu file (Enter để dùng mặc định, thường là ~/.ssh/id_ed25519) và một passphrase tùy chọn để khóa thêm private key — nên đặt, vì nếu máy bạn bị lấy trộm file private key thì passphrase là lớp chặn cuối cùng. Xong bạn có 2 file: id_ed25519 (private, giữ kỹ, không đưa cho ai) và id_ed25519.pub (public, sẽ đưa lên NAS ở bước sau).
Trên Windows, dùng PuTTYgen: mở app, bấm Generate, di chuột để tạo entropy ngẫu nhiên, rồi Save private key và copy phần public key hiển thị trên khung (dạng bắt đầu bằng ssh-rsa hoặc ssh-ed25519).
Bước 4: Đưa public key lên NAS qua File Station
Đây là chỗ bài này khác với đa số hướng dẫn SSH key trên mạng — thay vì bảo bạn SSH vào rồi gõ vi ~/.ssh/authorized_keys, dùng File Station cho lành:
- Mở File Station, vào
homes(hoặchometùy hiển thị) → thư mục của user bạn đang dùng để SSH. - Bật hiển thị file/thư mục ẩn nếu cần (menu View → Show hidden files), rồi tạo thư mục mới tên
.sshngay trong thư mục home đó. - Upload file
.pubvừa tạo ở Bước 3 vào thư mục.sshnày. - Đổi tên file đó thành
authorized_keys(không có đuôi mở rộng).
Nếu bạn cần thêm key thứ hai (thêm máy, thêm người), mở file authorized_keys bằng Text Editor trong File Station và dán nối tiếp — mỗi key phải nằm trọn trên một dòng duy nhất. Lỗi rất hay gặp ở đây: copy public key từ file có xuống dòng giữa chừng (do trình soạn thảo tự wrap chữ) rồi dán y nguyên vào, kết quả là sshd đọc thành nhiều dòng rác và không nhận diện được key nào cả. Dán xong nhớ kiểm tra lại toàn bộ nội dung nằm trên đúng một dòng dài.
Bước 5: Chỉnh quyền thư mục và file
sshd rất kỹ tính về quyền truy cập — quyền sai là nó âm thầm bỏ qua key mà không báo lỗi gì rõ ràng, cứ thế quay lại hỏi mật khẩu như chưa có chuyện gì xảy ra. Đây là lỗi khiến nhiều người bỏ cuộc giữa chừng vì tưởng mình làm sai bước nào đó ở trên, trong khi thủ phạm chỉ là một con số quyền.
Có hai bộ giá trị được ghi nhận hoạt động tốt trên DSM, thử theo thứ tự nếu bộ đầu không ăn:
| Thành phần | Chuẩn SSH thông thường | Biến thể xác nhận trên DSM |
|---|---|---|
| Thư mục home | 755 | 755 |
| Thư mục .ssh | 700 | 755 |
| File authorized_keys | 600 | 644 |
Bộ thứ hai (755/644) là quyền được cộng đồng ghi nhận hoạt động ổn định trên DSM cụ thể, theo dự án Synology_SSH_key_setup của 007revad. Chỉnh quyền qua File Station: chuột phải vào thư mục/file → Properties → tab Permission, hoặc dùng Terminal với lệnh chmod nếu quen tay hơn.
Lỗi phổ biến nhất ở bước này: home directory bị để nguyên quyền mặc định 777 (ai cũng đọc-ghi-thực thi được). sshd coi thư mục quyền lỏng lẻo như vậy là không an toàn và từ chối thẳng, không cần biết key của bạn đúng hay sai.
Bước 6: Test đăng nhập bằng key — đừng bỏ qua bước này
Trước khi làm bất cứ điều gì tiếp theo, mở Terminal (hoặc PuTTY) trên máy client và thử đăng nhập bằng private key:
ssh -i ~/.ssh/id_ed25519 ten_user@ip_nas -p port_sshNếu vào được mà không bị hỏi mật khẩu (hoặc chỉ hỏi passphrase của key, không phải mật khẩu tài khoản), coi như key đã chạy đúng. Nếu vẫn bị hỏi mật khẩu, quay lại Bước 5 kiểm tra quyền, và Bước 4 kiểm tra nội dung authorized_keys có nằm gọn một dòng không.
Bước này không phải thủ tục cho có. Tắt password authentication trước khi xác nhận key hoạt động là cách nhanh nhất để tự khóa mình ra khỏi SSH — lúc đó máy vẫn chạy bình thường, chỉ là bạn không vào được nữa thôi.

Bước 7: Tắt đăng nhập bằng mật khẩu cho SSH
Chỉ làm bước này sau khi Bước 6 đã xác nhận đăng nhập bằng key chạy ngon lành. SSH vào NAS (lúc này dùng key luôn cho quen), rồi sửa file cấu hình:
sudo vi /etc/ssh/sshd_configTìm dòng PasswordAuthentication yes, đổi thành:
PasswordAuthentication no
ChallengeResponseAuthentication noLưu file, rồi reload sshd để áp dụng. DSM 7:
sudo systemctl reload sshdDSM 6:
sudo synoservicectl --reload sshdNếu lỡ tay khóa mình ra ngoài (quên test key, hoặc sửa sai cú pháp file), đừng hoảng — đăng nhập DSM qua giao diện web (2FA vẫn hoạt động bình thường ở đây), dùng File Station sửa lại file, hoặc đơn giản nhất là copy đè file gốc từ /etc.defaults/ssh/sshd_config lên /etc/ssh/sshd_config để về lại cấu hình mặc định.
Bước 8: Giữ cấu hình sống sau khi NAS khởi động lại
Đây là phần khiến không ít người làm xong tưởng yên tâm, vài tuần sau restart NAS hoặc cập nhật DSM thì phát hiện PasswordAuthentication lại về yes — DSM có thói quen tái tạo lại file cấu hình này sau reboot/update, ghi đè luôn phần bạn vừa sửa tay.
Cách xử lý gọn nhất là để DSM tự áp lại bằng Task Scheduler thay vì bạn phải nhớ SSH vào sửa mỗi lần:
- Vào Control Panel → Task Scheduler → Create → Triggered Task → User-defined script.
- Đặt tên, chọn User: root, Event: Boot-up.
- Trong tab Task Settings, gõ script:
sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sed -i 's/^ChallengeResponseAuthentication yes/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config
systemctl reload sshdTừ giờ mỗi lần NAS khởi động lại, script này tự chạy và ép dòng cấu hình về đúng trạng thái mong muốn trước khi ai kịp thử mật khẩu.
Bước 9: Bật Auto Block làm lớp phòng thủ thứ hai
Key auth chặn từ gốc — không có key thì không vào được, chấm hết. Nhưng Auto Block vẫn nên bật song song, để xử lý phần còn sót: dò tài khoản khác ngoài tài khoản bạn đã khóa, hay quét cổng thử vận may.
Vào Control Panel → Security → tab Account/Protection, tick Enable auto block. Điền:
- Login attempts: số lần đăng nhập sai cho phép, ví dụ 5 lần.
- Within (minutes): khung thời gian tính số lần sai đó, ví dụ 5 phút.
- Enable block expiration (tùy chọn): tự gỡ chặn sau một số ngày, ví dụ 3-7 ngày, để tránh danh sách chặn phình to vô tận.
Một điều dễ quên: Auto Block tính chung cho mọi dịch vụ đăng nhập trên NAS — SSH, DSM, FTP, WebDAV, VPN đều dùng chung một ngưỡng. Đặt ngưỡng quá chặt kiểu 3 lần/1 phút, chỉ cần bạn gõ nhầm mật khẩu DSM vài lần liên tiếp lúc buồn ngủ là tự khóa luôn chính mình. Trước khi bật, nên vào Control Panel → Security → Firewall whitelist IP nhà/văn phòng để không bao giờ tự đá mình ra ngoài.
Lỗi thường gặp khi làm bài này
- Đăng nhập bằng key vẫn bị hỏi mật khẩu: gần như luôn là quyền thư mục/file sai — home hoặc
.sshđể 777, hoặcauthorized_keyskhông đúng quyền trong bảng ở Bước 5. sshd không báo lỗi, chỉ lặng lẽ bỏ qua key. - Tự khóa mình ra khỏi SSH sau khi tắt
PasswordAuthentication: do bỏ qua bước test key ở Bước 6. Cứu bằng cách vào DSM qua web, restore file gốc từ/etc.defaults/ssh/sshd_config. PasswordAuthenticationtự bật lại sau reboot hoặc cập nhật DSM: chưa tạo Triggered Task ở Bước 8, DSM ghi đè file cấu hình mỗi lần khởi động lại.- Key không được nhận diện: nội dung
authorized_keysbị dán thành nhiều dòng thay vì một dòng duy nhất — lỗi hay gặp khi copy public key từ file có tự động xuống dòng. - Auto Block tự khóa chính mình: ngưỡng đặt quá chặt (ví dụ 3 lần/1 phút) mà chưa whitelist IP nhà — gõ nhầm mật khẩu DSM vài lần là dính chặn.
Tùy chọn nâng cao (không bắt buộc)
Những thứ dưới đây làm cho chắc thêm, không phải điều kiện để bài trên chạy được:
- Đổi tên/vô hiệu hóa tài khoản admin mặc định: tạo tài khoản quản trị riêng, tắt tài khoản
admingốc — bớt một mục tiêu quen thuộc mà bot nào cũng thử đầu tiên. - Whitelist IP tin cậy trong DSM Firewall: đảm bảo Auto Block không bao giờ khóa nhầm chính bạn, đặc biệt hữu ích nếu IP nhà/văn phòng cố định.
- Dùng VPN thay vì mở SSH thẳng ra Internet: Synology có sẵn VPN Server, hoặc dùng Tailscale — vào được VPN rồi mới SSH vào LAN thì an toàn hơn hẳn việc chỉ dựa vào key + Auto Block, vì SSH lúc đó không hề lộ diện ra ngoài mạng công cộng.
Nếu bạn cần truy cập NAS từ xa cho việc khác ngoài SSH — kiểu map ổ đĩa để dùng file như trên máy tính, không phải chạy lệnh — đó lại là câu chuyện khác với SSH. QuickConnect có sẵn nhưng tốc độ phụ thuộc vào relay của Synology, còn tự dựng DDNS + mở port thì lại quay về đúng vấn đề "mở port ra Internet" mà bài này đang cố tránh cho SSH. RocketZero của nashub map NAS thành ổ đĩa trên máy tính mà không cần mở cổng router, mỗi NAS có một địa chỉ dạng tên miền riêng (ten-ban-dat.roze.to) kèm HTTPS sẵn — một lựa chọn đáng cân nhắc nếu nhu cầu chính là truy cập file từ xa chứ không phải chạy dòng lệnh.
Bảo trì và những điều cần nhớ
Đừng đánh mất private key. Mất key mà đã tắt password authentication nghĩa là bạn tự khóa mình khỏi SSH vĩnh viễn — lối vào duy nhất còn lại là sửa qua DSM web hoặc reset qua chế độ Recovery. Nếu dùng nhiều máy, mỗi máy nên có key riêng thay vì copy một key cho tất cả, để lỡ mất một máy chỉ cần xóa đúng key đó khỏi authorized_keys.
Nếu bạn không thực sự cần SSH thường trực — chỉ thỉnh thoảng debug — cách an toàn nhất vẫn là tắt hẳn SSH service khi không dùng, bật lại lúc cần. Không có cửa nào an toàn hơn cửa đang đóng.
Làm xong 9 bước ở trên, NAS của bạn không còn nằm trong danh sách "dễ ăn" của mấy con bot dò mật khẩu hàng loạt nữa. Public key nó có thể nhìn thấy thoải mái, đăng lên GitHub cũng chẳng sao — chứ private key mà lộ thì thôi, coi như phải làm lại từ Bước 3.



No comments yet