REMOTE / DEPLOY AN TOÀN

Mỗi project nên có FTP/SFTP riêng

Ozin ChatCode cho phép một máy chủ vật lý được dùng cho nhiều project, nhưng mỗi binding deploy vẫn được gắn rõ với một project. Cách an toàn nhất là cấp tài khoản remote và thư mục truy cập riêng cho từng project.

Vì sao ChatCode cảnh báo khi dùng chung server?

Upload, ghi đè, đổi tên hoặc xóa file trên máy chủ có thể thay đổi hệ thống đang chạy ngay lập tức và không phải thao tác nào cũng có thể hoàn tác. Nếu cùng một FTP/SFTP credential có quyền trên nhiều website hoặc nhiều thư mục, một đường dẫn sai có thể đưa code của project A vào project B.

Nguyên tắc ChatCode áp dụng

Project-scoped profile

AI chỉ nhìn thấy remote profile đã gắn với project mà nó đang thao tác. Profile của project khác được ẩn khỏi danh sách công cụ để giảm khả năng chọn nhầm.

Dùng chung vẫn được phép

Nếu bạn chủ động gắn một server đã có vào project thứ hai, ChatCode yêu cầu xác nhận cảnh báo. Một binding riêng được tạo cho project mới; quyền AI trên binding mới mặc định tắt cho tới khi bạn bật lại.

Cấu hình được khuyến nghị

  1. Tạo FTP/SFTP account riêng cho từng project, ví dụ shop-deployapi-deploy.
  2. Đặt home/chroot của account vào đúng thư mục deploy của project, không cho truy cập toàn bộ hosting nếu không cần.
  3. Ưu tiên SFTP hoặc FTPS. FTP thường không mã hóa username, password và dữ liệu trên đường truyền.
  4. Không dùng root/admin cho deploy thông thường. Chỉ cấp quyền đọc/ghi ở các thư mục thật sự cần thiết.
  5. Chỉ bật SSH command cho project cần chạy lệnh server; các profile FTP/FTPS không có shell.
  6. Đặt tên profile rõ ràng, ví dụ Shop · Production, Shop · Staging, tránh tên chung chung như “Server 1”.
  7. Giữ backup/snapshot trước các đợt deploy lớn. ChatCode có thể ngăn chọn nhầm profile, nhưng không thể tự hoàn tác mọi thay đổi đã ghi lên máy chủ bên ngoài.

SSH: quyền mạnh, phải dùng thận trọng

AI có thể mắc sai lầm.

Khi bạn bật Cho phép AI chạy SSH command, ChatCode có thể thực thi câu lệnh trên máy chủ bằng tài khoản SSH đã cấu hình. Nếu yêu cầu của bạn không chính xác, thiếu ngữ cảnh hoặc câu lệnh có tác động ngoài dự kiến, dịch vụ có thể lỗi và dữ liệu có thể bị thay đổi hoặc mất.

SFTP cũng chạy trên SSH nhưng chỉ dùng kênh truyền file. Việc bật quyền SSH command là một cấp quyền riêng và mạnh hơn. Nếu project chỉ cần upload/download file, hãy để quyền chạy command tắt.

Tài khoản user giới hạn quyền

Nên tạo một user deploy riêng, chỉ được truy cập đúng thư mục project và chỉ có quyền với dịch vụ thật sự cần. Khi có sai sót, phạm vi ảnh hưởng thường nhỏ hơn.

Root / Administrator

Không nên dùng tài khoản root hoặc Administrator cho ChatCode trừ khi bạn hiểu rõ nguy cơ và thực sự cần quyền đó. Một lệnh sai dưới quyền cao có thể ảnh hưởng toàn bộ máy chủ, các website khác, service, firewall hoặc dữ liệu hệ thống.

Tài khoản user không làm rủi ro bằng 0. Nếu user đó có quyền ghi vào website production, AI vẫn có thể ghi đè file hoặc làm ứng dụng lỗi. Hãy dùng backup và giới hạn quyền/thư mục càng hẹp càng tốt.

AI có biết mật khẩu hoặc private key không?

Không.

Password/private key được lưu cục bộ bởi ChatCode trên thiết bị của bạn và được dùng nội bộ khi ChatCode tạo kết nối tới remote server. Các công cụ AI chỉ nhận metadata cần thiết như tên profile, protocol, project và kết quả thao tác; credential không được trả về cho AI.

Việc AI có thể thao tác remote phụ thuộc vào quyền bạn bật trên từng binding/project. Quyền truyền file và quyền chạy SSH command là hai quyền riêng. Với thao tác được ChatCode nhận diện là rủi ro cao, ứng dụng yêu cầu xác nhận nhạy cảm riêng trước khi thực hiện.

Điều này giảm nguy cơ lộ credential, nhưng không thay thế việc quản trị quyền máy chủ đúng cách. Nếu tài khoản đã có quyền quá rộng thì thao tác hợp lệ qua ChatCode vẫn có thể gây ảnh hưởng rộng.

Checklist trước khi bật SSH command

  1. Xác nhận đúng project và đúng server profile.
  2. Dùng user deploy riêng thay vì root/Administrator nếu có thể.
  3. Giới hạn home/chroot, filesystem permissions và sudo rules đúng nhu cầu.
  4. Kiểm tra backup/snapshot trước thay đổi production quan trọng.
  5. Nói rõ mục tiêu cho AI; tránh yêu cầu mơ hồ kiểu “sửa hết server” hoặc “dọn cho sạch”.
  6. Trước lệnh thay đổi dữ liệu, migration, xóa file hoặc restart dịch vụ quan trọng, đọc lại câu lệnh và phạm vi tác động.
  7. Nếu không cần shell, tắt SSH command và chỉ để quyền truyền file.

Khi nào có thể dùng chung một FTP/SFTP?

Có thể dùng chung khi nhiều project thực sự deploy vào cùng một tài khoản hoặc cùng một hạ tầng và bạn hiểu rõ phạm vi quyền của credential đó. ChatCode vẫn cho phép cấu hình này để không giới hạn các hệ thống đặc thù.

Nhưng hãy coi đây là cấu hình rủi ro cao hơn.

Một credential bị lộ hoặc một đường dẫn deploy bị nhập sai có phạm vi ảnh hưởng lớn hơn. Nếu có thể tạo account riêng, nên tách.

Gắn server đã có vào project khác

  1. Mở Remote / Deploy.
  2. Chọn rõ Project đích.
  3. Trong mục Gắn server đã có, chọn server từ project khác.
  4. Đọc cảnh báo và chỉ xác nhận nếu bạn thực sự muốn tái sử dụng cùng credential.
  5. Sau khi gắn, kiểm tra lại host, protocol, username và project hiển thị trên card.
  6. Bật Cho phép AI truyền file cho binding mới khi đã chắc chắn. Quyền này mặc định tắt sau thao tác gắn dùng chung.

Checklist trước khi deploy

Project đúng → Server đúng → Thư mục đúng → Backup sẵn sàng.

Đặc biệt khi production chứa nhiều website trên cùng hosting, hãy kiểm tra project đích và remote path trước khi cho AI upload. Việc tách account theo project giúp biến một lỗi đường dẫn thành lỗi bị từ chối quyền thay vì ghi đè nhầm website khác.