MXterm Pro

SSH host và SFTP

MXterm Pro giữ một danh sách SSH host và kết nối bằng cách tự chạy ssh ngay trong pane, nên cấu hình OpenSSH sẵn có của bạn vẫn được dùng. Mỗi tab SSH có thêm panel tệp, dải thông số server và chuyển tiếp cổng, tất cả dùng lại kết nối của tab.

Mở trình quản lý host

Trình quản lý host là nơi bạn lưu, sửa, import và kết nối tới host. Mở bằng một trong các cách sau:

  • Trong mục Máy chủ SSH của thanh bên trái, bấm nút thanh trượt (tooltip Quản lý SSH & SFTP Server). Nút + bên cạnh mở trình quản lý ngay ở form Tạo Mới trống.
  • Nhấn Cmd+Shift+H trên macOS hoặc Ctrl+Shift+H trên Linux. Trong code, Windows dùng cùng phím tắt này nhưng chưa được kiểm thử trên đó. Bạn có thể đổi phím tắt trong Cài đặt.
  • Chọn Quản Lý Phiên SSH & SFTP Manager trong command palette.

Cột trái là Các Phiên SSH, mỗi nhóm có một nút lọc. Cột phải là form cho host mới hoặc host bạn đang chọn. Esc, hoặc bấm vào vùng tối bên ngoài cửa sổ, đóng trình quản lý. Mục Máy chủ SSH ở thanh bên trái cũng liệt kê mọi host đã lưu: bấm một host để mở nó trong tab mới, giống nút Kết nối. Việc thêm, sửa và xoá host làm trong trình quản lý. Các phím tắt khác có ở Phím tắt.

Thêm host

  1. Mở trình quản lý host và bấm Tạo Mới.
  2. Điền các trường bên dưới. Tên Gợi Nhớ, Địa chỉ IP / tên miền và Tên đăng nhập là bắt buộc.
  3. Chọn cách xác thực dưới PHƯƠNG THỨC XÁC THỰC.
  4. Bấm Lưu Phiên SSH.

Muốn sửa host, bấm vào thẻ của nó, sửa form rồi bấm Cập Nhật Phiên. Biểu tượng thùng rác trên thẻ xoá host sau khi bạn xác nhận. Nếu bạn gõ mật khẩu mới mà keychain của hệ thống từ chối, không có gì bị đổi: form giữ nguyên và hiện Không lưu được mật khẩu vào keychain nên chưa đổi gì, kèm lý do.

TrườngTác dụng
Tên Gợi NhớTên hiện trong danh sách và trên tiêu đề tab.
Địa chỉ IP / tên miềnĐịa chỉ server.
CổngCổng SSH. Mặc định 22.
Tên đăng nhậpTài khoản đăng nhập. Mặc định root.
Thư Mục Mặc Định Khi Kết Nối (Tuỳ Chọn)Thư mục shell trên server mở ra khi vào. Nếu thư mục không tồn tại, bạn vào thư mục home.
Máy Trung Gian / Bastion (Tuỳ Chọn)Máy để kết nối xuyên qua, viết dạng user@bastion.example.com:22. Nhiều chặng thì ngăn bằng dấu phẩy. Giá trị này được truyền cho ssh -J.
Chuyển tiếp SSH agentThêm ssh -A, để server dùng được các khoá trong ssh-agent trên máy bạn. Ai có quyền root trên server đó cũng dùng được các khoá này trong lúc bạn đang kết nối, nên chỉ bật với host bạn tin tưởng.
Nhóm Server (Group Tag)Xếp host vào nhóm trong danh sách: Production, Staging, Testing, Cloud / VPS, Internal / VPN, Development, hoặc nhóm riêng tạo bằng + Nhóm Mới.
Cách xác thựcCách bạn đăng nhập
Mật khẩussh hỏi mật khẩu ngay trong pane và bạn gõ ở đó. Ô mật khẩu trong form lưu mật khẩu vào keychain của hệ thống, và không phần nào trong app đọc lại nó để tự điền. Đúng như dòng ghi chú trong form: Lưu vào keychain của hệ thống, không lưu trong dữ liệu ứng dụng. Nhập một lần ở terminal, panel tệp sẽ dùng lại phiên đó.
Tệp khoá công khai / khoá riêngGõ đường dẫn khoá hoặc bấm Import... để chọn tệp. Đường dẫn được truyền qua ssh -i, viết bắt đầu bằng ~ vẫn chạy. Nếu khoá có passphrase, ssh hỏi passphrase trong terminal hoặc dùng ssh-agent của bạn; ô Passphrase (nếu có) không được dùng để mở khoá.
Nhập tương tác bàn phímssh hiện các câu hỏi của server, ví dụ mã một lần, ngay trong terminal.
Với mọi cách xác thực, ssh vẫn đọc ~/.ssh/config và dùng ssh-agent của bạn như bình thường. Mặc định gói Free lưu tối đa 5 host, và mxterm.net có thể đổi con số này; thêm host vượt giới hạn, dù gõ tay hay import, sẽ mở hộp thoại nâng cấp. Giới hạn thấp hơn không bao giờ xoá host bạn đã lưu. Xem Bảng giá.

Import host từ tệp

Nút Nhập chỉ đọc một tệp do bạn chọn, không tự đọc ~/.ssh/config.

  1. Trong trình quản lý host, bấm Nhập phía trên danh sách host.
  2. Chọn tệp cấu hình OpenSSH, tệp phiên MobaXterm, tệp xuất profile iTerm2 hoặc tệp JSON. Hộp chọn tệp nhận các đuôi .config, .mxtsessions, .json, .txt và .ini.
  3. Mở từng host vừa import và sửa những gì import chưa mang sang được (xem ghi chú bên dưới).

Tệp cấu hình của OpenSSH không có đuôi và nằm trong thư mục ẩn. Cách đơn giản nhất là sao chép ra trước, ví dụ cp ~/.ssh/config ~/Desktop/ssh-config.txt, rồi import bản sao đó.

Định dạngNhững gì được import
Cấu hình OpenSSHMỗi mục Host có HostName thành một host, đọc HostName, User, Port và IdentityFile. Mục có * trong tên bị bỏ qua. Thiếu User thì thành root. Host được gắn nhóm Imported.
Phiên MobaXtermChỉ những dòng có dạng name=#109#0%host%22%user%...: tên nằm trước =, rồi loại phiên, địa chỉ, cổng và user lấy từ các trường ngăn bằng %. Chỉ loại 0 (SSH) được nhập, còn số biểu tượng (ở đây là 109) có thể là số bất kỳ. Cổng thiếu hoặc không hợp lệ thì thành 22, thiếu user thì thành root. User là <default> thì thành root. Dòng không có địa chỉ bị bỏ qua, dòng bắt đầu bằng [ hoặc ; cũng vậy. Dòng phiên mở đầu bằng ; logout trước nhóm # vẫn được đọc. Đường dẫn khoá riêng trong phiên được giữ và host đặt cách xác thực Key File, nếu không thì Password. Cổng SSH gateway trong phiên được giữ làm jump host của host, và phiên có gateway không đọc được an toàn thì bị bỏ qua. Host được gắn nhóm MobaXterm.
Profile iTerm2Tệp JSON xuất profile từ iTerm2. Profile nào có lệnh hoặc Initial Text là một dòng ssh đơn thuần sẽ thành host gắn nhóm iTerm2. App cho biết đã bỏ qua bao nhiêu profile khác. Xem Nhập profile iTerm2 bên dưới.
JSONMột mảng host, hoặc một object có mảng hosts. Mỗi mục cần host; name, port (một con số), username, keyPath, authType và group được đọc nếu có. Mật khẩu trong tệp không được lưu.
Import MobaXterm chưa được kiểm tra với tệp export từ một bản MobaXterm thật. Nó theo định dạng dòng phiên trong tài liệu công khai của định dạng này, nên tệp có định dạng khác có thể không import được gì, khi đó app báo là không tìm thấy host hợp lệ nào. Hãy kiểm tra từng host đã import trước khi kết nối.
Import OpenSSH bỏ qua mọi thiết lập khác, kể cả ProxyJump, ForwardAgent và LocalForward, nên bạn phải tự điền jump host vào Máy Trung Gian / Bastion (Tuỳ Chọn). Riêng IdentityFile được giữ nguyên như bạn viết, kể cả dấu ~: ~/.ssh/id_ed25519 được lưu đúng là ~/.ssh/id_ed25519 và chỉ được mở rộng lúc kết nối, nên host vẫn dùng được khi chuyển sang máy khác.

Nhập profile iTerm2

Quản Lý Phiên Làm Việc Pro có thể nhập profile iTerm2 thành phiên đã lưu và SSH host. Mở nó từ command palette hoặc bằng Cmd+Shift+O trên macOS (Ctrl+Shift+O trên Linux), rồi bấm tab Xuất / Nhập Kịch Bản.

Trên macOS, bấm Tìm profile trên máy Mac này. App đọc tệp preferences của iTerm2 bằng plutil, hoặc tệp trong thư mục preferences tùy chỉnh khi iTerm2 được đặt để nạp từ đó. Nút này chỉ có trên macOS. Trên hệ nào bạn cũng có thể thay bằng cách bấm vào vùng chọn tệp của tab để chọn tệp JSON xuất từ iTerm2, hoặc dán nội dung vào ô JSON, rồi bấm Nhập Kịch Bản. Cách nào bạn cũng nhận cùng một danh sách để chọn.

ProfileKết quả
Lệnh của profile là một dòng ssh đơn thuầnSSH host gắn nhóm iTerm2, đặt tên theo profile. App đọc -p, -i, -l, -J và [user@]host, còn -t, -T, -4, -6, -C, -q, -v, -X, -Y và -A bị bỏ. Vì -A bị bỏ, hãy tự bật Chuyển tiếp SSH agent nếu cần. Có -i thì host dùng tệp khoá, không thì dùng Password. Không có user thì host dùng root, và danh sách có ghi rõ.
Có thư mục làm việc và không có lệnh sshMột phiên đã lưu gồm một workspace với một pane shell thường mở ở thư mục đó. Lệnh khởi động của profile, nếu có, được hiện trong danh sách và không bao giờ được nhập, nên phiên đã lưu không thể chạy lệnh.
Các trường hợp còn lạiBị bỏ qua, lý do ghi trong danh sách: không có thư mục và không có lệnh ssh, một tuỳ chọn mà phần nhập không đọc (như -o hoặc -L), lệnh chạy trên máy chủ, cú pháp shell như ; hoặc $, hoặc autossh hay mosh thay cho ssh. Dòng ssh không nhập trọn vẹn được thì vẫn bị bỏ qua dù profile có thư mục.

Không có gì được ghi cho đến khi bạn bấm Nhập mục đã chọn (N), với N là số mục đã tick. Profile bị bỏ qua thì không tick được. Chọn tất cả và Bỏ chọn tất cả đổi các dấu tick. Nhập lại một profile thì cập nhật phiên đã lưu của nó chứ không thêm phiên thứ hai. Host có cùng user@host:port với một host đã lưu thì bị bỏ qua, và dòng kết quả có đếm.

Nếu chạm giới hạn host của gói Free, phần nhập dừng ở host đầu tiên bị từ chối, mở hộp thoại nâng cấp và báo có bao nhiêu host chưa được thêm. Màu và phông chữ không được nhập. Nút Nhập của trình quản lý host cũng đọc tệp JSON xuất này: nó biến các profile ssh đơn thuần thành host và cho biết đã bỏ qua bao nhiêu profile khác. Phiên đã lưu chỉ tạo được từ Quản Lý Phiên Làm Việc Pro.

Kết nối tới host

  1. Mở trình quản lý host.
  2. Tuỳ chọn: bấm Ping trên thẻ host. Nút này chỉ kiểm tra địa chỉ và cổng có nhận kết nối TCP từ máy bạn hay không. Nó không đăng nhập và không đi qua jump host.
  3. Bấm Kết Nối. Một tab mới tên [SSH] <name> (<address>) mở ra.
  4. Trả lời các câu hỏi của ssh trong terminal, ví dụ xác nhận host key ở lần đầu, rồi mật khẩu, passphrase hoặc mã.

Pane tự chạy ssh, chính bản đã cài sẵn trên máy bạn: MXterm không có thư viện SSH riêng, và panel tệp cũng chạy ssh và scp. Trên Windows nghĩa là cần OpenSSH client, phần này chưa được kiểm thử trên đó. Không có shell nào nằm dưới và cũng không có dòng lệnh nào được gõ vào shell: app dựng sẵn các tham số từ những trường bạn đã lưu rồi đưa thẳng cho ssh, và từ đó ssh chạy y như trong mọi terminal khác. MXterm thêm các tuỳ chọn sau:

  • -o ControlMaster=auto -o ControlPath=~/.mxterm/sockets/%r@%h:%p -o ControlPersist=10m: mỗi host dùng chung một kết nối, panel tệp, dải thông số và chuyển tiếp cổng đều dùng lại kết nối này. Nó còn mở ngầm thêm 10 phút sau khi không còn gì dùng tới.
  • -o ServerAliveInterval=30 -o ServerAliveCountMax=3: gói keepalive, để kết nối bị rớt được phát hiện trong khoảng 90 giây thay vì đến lúc bạn gõ phím.
  • -i, -J, -A và -p lấy từ tệp khoá, jump host, chuyển tiếp agent và cổng của host. -i chỉ được truyền với host dùng tệp khoá.
  • -- đặt trước địa chỉ đích, để tên host hay tên user bắt đầu bằng dấu - không bao giờ bị hiểu nhầm thành một tuỳ chọn.

Từng trường được kiểm tra trước khi kết nối: host, user và jump host theo đúng quy tắc mà chính OpenSSH áp dụng, còn với cổng, đường dẫn tệp khoá và thư mục làm việc thì app loại các giá trị không thể truyền đi an toàn. Nếu một trường bị từ chối, Kết Nối không mở tab nào và trình quản lý hiện thông báo nêu rõ trường nào và lý do. Tab đã lưu mà bị từ chối lúc khởi động thì hiện cùng thông báo đó trong một thanh ở đầu pane.

Nếu host không có Thư Mục Mặc Định Khi Kết Nối và bạn đã chọn Đường dẫn thư mục tùy chỉnh ở mục Thư Mục Làm Việc Mặc Định SSH trong Cài đặt → Terminal, tab sẽ mở ở thư mục đó. Xem Cài đặt.

Đặt lại kết nối dùng chung

Mỗi pane, panel tệp, dải thông số và chuyển tiếp cổng của một host dùng chung một kết nối ssh chạy ngầm. Nó đăng nhập một lần và giữ nguyên trạng thái lúc đó. Nếu lúc ấy mật khẩu trên server đã hết hạn, panel tệp có thể vẫn báo lỗi sau khi bạn đã đổi mật khẩu trong terminal, vì nó vẫn dùng kết nối cũ.

Đặt lại kết nối đóng kết nối đó, để lần sau đăng nhập lại từ đầu. Thẻ báo lỗi của panel tệp hiện nút này khi nguyên nhân là mật khẩu hết hạn hoặc đăng nhập bị từ chối. Bấm vào: app đóng kết nối và mở một tab SSH mới tới host. Hãy đăng nhập ở đó, rồi bấm Thử lại. Nếu không mở được tab, panel sẽ báo bạn tự mở một tab. Mọi phiên đi qua kết nối cũ đều kết thúc cùng nó, kể cả pane và các chuyển tiếp cổng đang chạy.

App cũng tự đóng kết nối dùng chung khi:

  • bạn lưu thay đổi của một host làm đổi địa chỉ, cổng, user, cách xác thực, tệp khoá, jump host hoặc chuyển tiếp agent, hoặc lưu mật khẩu mới cho nó;
  • bạn xoá một host hoặc xoá mật khẩu đã lưu của nó;
  • bạn thêm một host trong khi kết nối tới địa chỉ đó vẫn đang mở.

Đổi tên host, hoặc đổi nhóm hay thư mục làm việc của nó thì kết nối vẫn mở. Sửa, xoá hoặc thêm host, hay lưu hoặc xoá mật khẩu, cũng để kết nối mở khi một host đã lưu khác có cùng user@host:port. Khi đó hãy dùng Đặt lại kết nối nếu kết nối đã cũ.

Duyệt tệp trên server

Mỗi tab SSH có một panel tệp cho host của tab, mặc định nằm bên trái. Các nút trên đầu panel mở chuyển tiếp cổng, đổi panel sang bên kia, bật hoặc tắt Theo thư mục của terminal, tải lại thư mục, hiện hoặc ẩn tệp ẩn, và ẩn panel. Khi panel đang ẩn, bấm dải FILES (SFTP) để mở lại. Kéo mép panel để đổi độ rộng. Panel mở ở khoảng 30% độ rộng vùng làm việc, không dưới 420 px và không trên 640 px, và độ rộng bạn kéo tới được ghi nhớ. Danh sách chọn host trên đầu panel đổi panel và dải thông số sang một host đã lưu khác; terminal vẫn giữ nguyên.

Panel tệp chỉ là một khung nhìn vào tệp trên server. Nó không có nửa bên máy local nên không phải trình quản lý hai khung, và cũng không đồng bộ hay phản chiếu thư mục giữa máy bạn với server: tệp chỉ di chuyển khi bạn tải lên hoặc tải xuống. Tệp trên máy bạn nằm ở tab Explorer (xem Sửa tệp ngay trên máy bạn).

Panel không bao giờ hỏi mật khẩu hay passphrase. Nó chạy ssh và scp ở chế độ batch qua kết nối dùng chung của tab. Với host dùng Mật khẩu hoặc Nhập tương tác bàn phím, khoá có passphrase chưa nạp vào ssh-agent, hoặc host cần trường jump host, hãy đăng nhập trong terminal trước. Trước khi đăng nhập, panel báo Không thể đọc thư mục. Các lệnh ssh riêng của panel dùng StrictHostKeyChecking=accept-new: host chưa có trong known_hosts của bạn thì được tin cậy và ghi lại, còn host key đã đổi thì bị từ chối. Câu hỏi về host key mới được hỏi trong tab terminal. Khi nguyên nhân là mật khẩu hết hạn hoặc đăng nhập bị từ chối, thẻ báo lỗi còn có nút Đặt lại kết nối.

Panel mở ở thư mục home của tài khoản bạn đăng nhập, mà nó hỏi server để biết. Nút home quay về đó; tooltip của nó vẫn ghi Về Root (/root) dù tài khoản nào. Muốn tới chỗ khác, bấm vào thanh đường dẫn, gõ đường dẫn tuyệt đối như /var/www rồi nhấn Enter. Bấm vào một đoạn của đường dẫn để quay lên cấp đó.

Gõ vào Lọc file nhanh... để lọc theo tên, hoặc dùng các nút Tất cả, Thư mục, Code, Ảnh, Nén. Bấm tiêu đề cột Tên file, Size hoặc Sửa cuối để sắp xếp. Nút tìm kiếm cạnh ô lọc mở Tìm Kiếm Văn Bản Trong File (Remote Grep): nó tìm chữ bên trong các tệp thuộc thư mục hiện tại, bỏ qua .git, node_modules, vendor, storage, dist, build và .cache, liệt kê tối đa 60 dòng khớp, và mở tệp trong trình soạn thảo khi bạn bấm vào kết quả.

Liên kết mà đích của nó không còn vẫn được liệt kê. Danh sách dùng python3 trên server khi có, không thì quay về ls -la. Với ls -la, tên có nhiều dấu cách liền nhau có thể hiện ít dấu cách hơn, và liên kết hiện dạng name -> target.

MuốnLàm thế này
Mở một mụcNhấp đúp hoặc nhấn Enter. Thư mục thì mở ra, ảnh mở trong trình xem, tệp văn bản đến 5 MB mở trong trình soạn thảo (tệp lớn hơn sẽ hỏi trước). Các tệp khác sẽ đề nghị tải về.
Tạo tệp hoặc thư mụcBấm Tạo File Mới hoặc Tạo Thư Mục Mới trên thanh công cụ, hoặc chuột phải vào chỗ trống. Tạo thư mục & mở ngay tạo xong thì mở luôn thư mục mới.
Đổi tênChuột phải → Đổi tên (Rename), hoặc nhấn F2.
Đổi quyềnBấm vào giá trị ở cột Quyền, hoặc chuột phải → Phân quyền File (chmod).... Tick đọc, ghi, thực thi, gõ số octal, hoặc chọn mẫu có sẵn (755, 644, 777, 600). Với thư mục, bạn có thể tick Áp dụng đệ quy cho toàn bộ thư mục & tệp con (-R).
XoáChuột phải → Xóa (Delete), hoặc nhấn Delete, rồi xác nhận bằng Xóa Vĩnh Viễn Trên Server. Thao tác này chạy rm -rf trên server và không hoàn tác được.
Sao chép đường dẫnChuột phải → Sao chép đường dẫn (Copy Path), hoặc Sao chép SFTP URL (sftp://...) để lấy URL sftp://.
Mở bằng ứng dụng trên máyChuột phải vào tệp → Mở bằng app mặc định máy. Thao tác này tải một bản sao tạm về và mở nó. Những gì bạn sửa trên bản sao đó không được tải ngược lên server.
Chọn nhiều mụcCmd-click hoặc Ctrl-click để thêm từng mục, Shift-click để chọn một dải. Một thanh hiện ra với Tải về, Xoá và Bỏ chọn.

Phím tắt có tác dụng sau khi bạn bấm vào bên trong panel:

PhímTác dụng
↑ / ↓Di chuyển lựa chọn. Giữ Shift để chọn rộng thêm.
EnterMở mục đang chọn, như nhấp đúp.
SpaceMở tệp văn bản đang chọn trong trình soạn thảo.
Backspace (giữ thêm Cmd hoặc Ctrl cũng được), hoặc Cmd+← / Ctrl+←Lên một cấp thư mục.
F2Đổi tên.
DeleteXoá sau khi xác nhận. Khi đang chọn nhiều mục, một lần xác nhận xoá tất cả.
Cmd+A / Ctrl+AChọn tất cả.
Cmd+F / Ctrl+FĐưa con trỏ vào ô lọc. Trong ô lọc, Esc lần đầu xoá nội dung, lần sau trả focus về danh sách. Phím bạn gõ trong ô lọc ở nguyên tại đó: Backspace xoá ký tự chứ không lên thư mục cha.
Chữ cáiNhảy tới tên đầu tiên bắt đầu bằng những gì bạn gõ. Nhấn lại cùng một chữ để sang kết quả khớp tiếp theo.

Tải Lên File (Upload) và Tải thư mục lên… trên thanh công cụ, cùng Tải lên máy chủ (Upload) trong menu chuột phải, chép một tệp hoặc thư mục từ máy bạn vào thư mục hiện tại. Bạn cũng có thể kéo tệp từ Finder thả vào panel để tải lên thư mục bạn đang xem. Thả vào pane SSH cũng tải lên (xem Thả tệp vào pane SSH), còn thả vào pane local thì vẫn gõ đường dẫn trên máy. Tải về (Download) trong menu chuột phải, hoặc nút tải về trên dòng tệp, lưu tệp vào thư mục Downloads. Thư mục tải lên được nhưng không tải về được, và cũng không kéo tệp từ panel ra ngoài để tải về được. Tiến độ hiện ở Tiến trình Transfer Queue cuối panel.

Nếu scp trên máy bạn cũ hơn OpenSSH 9.0, hoặc không đọc được phiên bản của nó, thì tải lên và tải về từ chối đường dẫn trên server có ký tự nào ngoài chữ cái, chữ số và _./+,:@%=-. Tên có dấu cách, dấu nháy hoặc $ bị từ chối, còn chữ có dấu và các chữ ngoài ASCII khác thì được nhận. Giao thức cũ đó đưa đường dẫn cho shell trên server. Thông báo bảo bạn đổi tên tệp hoặc cập nhật OpenSSH. Với OpenSSH 9.0 trở lên thì không có gì bị từ chối.
Duyệt tệp, tải lên, tải về, sửa tệp, đổi quyền và chuyển tiếp cổng đều miễn phí, không hiện hộp thoại nâng cấp. Xem Bảng giá để biết gói Free giới hạn gì.

Cho panel đi theo terminal

Khi bạn cd trong terminal SSH, panel tệp có thể chuyển sang cùng thư mục đó. Mặc định panel bật chế độ này. Nút Theo thư mục của terminal trên đầu panel bật và tắt nó, và panel nhớ lựa chọn của bạn. Chấm xanh trên nút nghĩa là terminal đang báo thư mục của nó.

Thư mục lấy từ shell trên server, và shell phải báo nó bằng chuỗi escape OSC 7. fish tự làm việc này. bash và zsh cần thêm một dòng vào ~/.bashrc hoặc ~/.zshrc trên server. MXterm không bao giờ gõ gì vào phiên SSH của bạn để ép nó báo.

Nếu khoảng 8 giây sau lần xuất ra đầu tiên của terminal vẫn chưa có báo cáo nào, panel hiện một gợi ý với các nút Chép cho bash (~/.bashrc) và Chép cho zsh (~/.zshrc) để chép dòng đó. Thêm nó vào tệp khởi động trên server rồi mở terminal mới. Không hiện lại cho server này ẩn gợi ý cho host đó.

  • Khi panel đang mở, nó theo một pane SSH cùng tab đang chạy đúng host mà panel hiển thị: pane đang focus nếu nó đã báo thư mục, không thì pane báo gần nhất. Pane local thì không bao giờ được theo.
  • Nó chỉ chuyển khi thư mục của terminal đổi. Cùng một thư mục được báo lại ở mỗi dấu nhắc thì không kéo panel về, dù bạn đã tự mở thư mục khác.
  • Nó không chuyển khi bạn đang gõ trong thanh đường dẫn. Nó chờ báo cáo kế tiếp.
  • Nếu bạn cd liên tiếp nhiều lần thật nhanh, panel chỉ liệt kê thư mục cuối cùng.

Thả tệp vào pane SSH

Kéo tệp hoặc thư mục từ Finder thả vào một pane SSH. MXterm tải chúng lên một thư mục trên server và gõ đường dẫn trên server vào dấu nhắc, để bạn dùng ngay trong lệnh đang viết. Không cần mở panel tệp. Thả vào panel thì tải lên thư mục panel đang hiện, còn thả vào pane local thì gõ đường dẫn trên máy.

  • Thư mục là thư mục terminal đã báo (xem phần trên), không thì thư mục panel tệp của tab đó đang hiện, không thì thư mục home của bạn trên server. Thả tệp không bao giờ tải vào / trừ khi terminal báo /. Khi đó app không tải gì lên và bảo bạn cd vào một thư mục trước.
  • Tên đã có thì không bao giờ bị ghi đè. Tệp tải lên được đặt tên name (1).ext, name (2).ext và cứ thế tiếp, và đường dẫn được gõ là đường dẫn mới.
  • Đường dẫn được gõ sau khi tệp cuối cùng tải xong, cách nhau bằng dấu cách, kèm một dấu cách ở cuối. Tên nào cần thì được đặt trong dấu nháy đơn. Chỉ tệp đã tải lên mới được gõ, và chỉ gõ vào pane đó, kể cả khi đang bật broadcast. Tên có dấu nháy đơn, dấu gạch chéo ngược, ! hoặc ký tự điều khiển vẫn được tải lên nhưng không được gõ, và thông báo liệt kê chúng.
  • Các lần tải hiện trong Tiến trình Transfer Queue. Nếu không đọc được thư mục, không có gì được tải lên và thông báo nêu lý do. Mỗi host chỉ chạy một lượt thả tại một thời điểm, nên lượt thứ hai báo bạn thả lại khi lượt đầu xong.

Một thanh ở cuối pane hiện tiến độ và kết quả. Kết quả sạch tự biến mất sau 6 giây. Lỗi hoặc bị từ chối thì ở lại đến khi bạn đóng.

Nếu phiên SSH của pane không còn chạy, tệp vẫn được tải lên nhưng đường dẫn không được gõ, và thông báo nói rõ điều đó. Nếu host của pane không còn trong trình quản lý host, không có gì được tải lên.

Sửa tệp trên server

Nhấp đúp vào tệp văn bản, nhấn Space khi đang chọn nó, hoặc chuột phải → Xem / Chỉnh sửa (View/Edit). Trình soạn thảo có tô màu cú pháp, chọn theme, chọn cỡ chữ và tự xuống dòng, và nhớ các lựa chọn này. Chỉ tệp văn bản UTF-8 mới mở được; tệp khác thì hãy tải về.

Trình soạn thảo hiện tệp như trên server, và khi lưu thì ghi lại với cùng dấu xuống dòng cuối: tệp không có dấu xuống dòng cuối, như authorized_keys, vẫn không có sau khi lưu, còn tệp có thì vẫn giữ.

Nếu server không đọc được tệp, ví dụ vì bạn thiếu quyền, trình soạn thảo hiện một thanh đỏ nêu lý do và nút Đọc lại file thay cho vùng văn bản. Nút Lưu bị vô hiệu hóa và phím tắt lưu (Cmd+S / Ctrl+S) không làm gì cho đến khi đọc thành công, nên văn bản rỗng không bao giờ bị ghi đè lên tệp.
PhímTác dụng
Cmd+S / Ctrl+SLưu lên server. Nút Lưu làm việc tương tự.
EscĐóng. Nếu còn thay đổi chưa lưu, trình soạn thảo hỏi: Tiếp Tục Sửa hoặc Thoát Không Lưu.
Cmd+Shift+F / Ctrl+Shift+FTìm và thay thế.
Cmd+G / Ctrl+GNhảy tới dòng.
Cmd+/ / Ctrl+/Bật hoặc tắt comment cho dòng.
Option+Z / Alt+ZBật hoặc tắt tự xuống dòng.

Trước khi lưu, trình soạn thảo kiểm tra tệp có bị thay đổi trên server kể từ lúc bạn mở hoặc lưu lần trước không, ví dụ do một lần deploy. Nếu có, hộp thoại Tệp này đã đổi trên server cho chọn Hủy bỏ, Tải lại từ server (bỏ phần bạn đã sửa và nạp bản trên server) hoặc Vẫn ghi đè. Việc kiểm tra dùng python3 trên server; nếu server không có python3, tệp vẫn được lưu mà không kiểm tra.

Khi lưu, nội dung được ghi vào một tệp tạm cạnh tệp gốc rồi mới chép đè lên, nên rớt kết nối giữa chừng không làm tệp bị rỗng, và tệp giữ nguyên quyền cùng chủ sở hữu.

Sửa tệp ngay trên máy bạn

Giờ chính trình soạn thảo đó cũng mở được tệp trên máy bạn. Tab Thư mục ở panel bên phải hiện cây thư mục mà pane đang focus làm việc trong đó (máy của bạn, không phải server), và bấm vào một tệp là mở nó bằng đúng trình soạn thảo vừa nói ở trên. Không phải chọn host và không có kết nối nào cả.

  • Mở panel bên phải bằng Cmd+Option+B trên macOS hoặc Ctrl+Alt+B trên Linux, rồi chọn tab Thư mục (biểu tượng cây thư mục).
  • Cây thư mục lấy gốc là thư mục làm việc của pane đang focus, và tự đổi gốc khi bạn focus sang pane làm việc ở chỗ khác.
  • Lọc theo tên, hiện hoặc ẩn tệp ẩn, và tải lại bằng các nút ở phía trên.
  • Bấm vào một tệp để sửa. Cmd+S (Ctrl+S trên Linux) lưu tệp xuống ổ đĩa.

Chỉ những tệp mà panel SFTP vốn đã cho sửa mới mở được ở đây: tệp văn bản UTF-8 tối đa 5 MB. Những tệp khác được để nguyên.

Explorer chỉ để duyệt và sửa. Nó không có Tạo File Mới, Tạo Thư Mục Mới, Đổi tên hay Xoá. Những thao tác đó chỉ có cho tệp từ xa trong panel SFTP. Tệp nằm ngoài thư mục làm việc của pane thì không với tới được từ đây, nên một symlink trỏ ra ngoài thư mục đó sẽ không mở được.

Chuyển tiếp cổng

Chuyển tiếp cổng cho phép máy bạn truy cập một cổng chỉ lắng nghe trên 127.0.0.1 của chính server, ví dụ một database. Lệnh chuyển tiếp được gắn vào kết nối SSH dùng chung của tab.

  1. Kết nối tới host và đăng nhập trong terminal.
  2. Trên đầu panel tệp, bấm nút chuyển tiếp cổng (Quản lý SSH Port Forwarding & Tunnels).
  3. Ở Thêm Port Forward Mới, nhập tên, cổng local và cổng remote, rồi bấm Thêm Quy Tắc.
  4. Bấm Kích Hoạt trên quy tắc. Quy tắc hiện ĐANG CHẠY khi ssh đã nhận lệnh chuyển tiếp.
  5. Cho ứng dụng của bạn kết nối tới 127.0.0.1 với cổng local. Bấm Dừng để gỡ chuyển tiếp.

Mỗi quy tắc tương đương ssh -L 127.0.0.1:<local port>:127.0.0.1:<remote port>. Cổng local chỉ lắng nghe trên loopback của máy bạn, còn đầu bên kia là 127.0.0.1 nhìn từ phía server. Hộp thoại này không chuyển tiếp được tới máy khác trong mạng của server, không mở cổng trên server (-R) và không tạo SOCKS proxy (-D).

Nếu Kích Hoạt báo lỗi có chữ Control socket, nghĩa là host này chưa có kết nối nào đang mở. Hãy đăng nhập trong tab terminal rồi thử lại.

Quy tắc không được lưu. Đóng hộp thoại là danh sách mất, còn chuyển tiếp đang chạy thì vẫn mở và không dừng được từ hộp thoại nữa, cho đến khi kết nối dùng chung đóng lại. Đặt lại kết nối sẽ đóng nó và kết thúc chuyển tiếp. Hãy bấm Dừng trước khi đóng hộp thoại.

Thông số server

Một dải ở cuối tab SSH hiện tên host, thời gian uptime và ba chỉ số đo:

Chỉ sốĐo cái gì
CPULoad average 1 phút chia cho số nhân CPU, tính theo phần trăm, tối đa 100.
RAMBộ nhớ đang dùng: tổng trừ phần khả dụng, lấy từ /proc/meminfo. Hiện dấu gạch thay cho 0% khi server không báo tổng, như server Mac hoặc BSD.
DiskDung lượng đã dùng trên /.

Chỉ số màu xanh khi đến 65%, vàng khi trên 65% và đỏ khi trên 85%. Dải tự cập nhật mỗi 20 giây, nút Cập nhật thông số VPS đọc lại ngay. Nó chạy một đoạn script python3 ngắn qua kết nối dùng chung và đọc các tệp /proc của Linux, nên server cần có python3, và với host dùng mật khẩu thì terminal phải đăng nhập xong trước. Dải chỉ hiện sau lần đọc thành công đầu tiên; server không có python3 thì dải không hiện.

Kho lệnh mẫu

Kho lệnh mẫu đối chiếu câu bạn gõ với một bộ lệnh Linux dựng sẵn: tệp lớn, RAM và CPU, dung lượng đĩa, cổng đang mở, Docker, Nginx, UFW, nhật ký hệ thống và khởi động lại. Không có mô hình AI nào chạy. Mở bằng nút tròn ở góc dưới bên phải của tab SSH, hoặc Cmd+J trên macOS.

Gõ yêu cầu hoặc bấm một gợi ý nhanh. Khi có lệnh mẫu khớp, bạn thấy lệnh kèm một dòng giải thích. Sao chép chép lệnh. Chèn & Chạy Trong Terminal gõ lệnh vào pane đang focus của tab hiện tại, nhấn Enter, và đồng thời chép lệnh. Khi không có gì khớp, sẽ không có lệnh nào được đưa ra.

Chèn & Chạy Trong Terminal chạy lệnh ngay trong pane đang focus, mà pane đó có thể là shell trên máy bạn. Một số lệnh mẫu thay đổi server: gợi ý dọn Docker chạy docker system prune -af --volumes, xoá các volume không dùng cùng dữ liệu bên trong; các lệnh khác reload Nginx, mở cổng tường lửa hoặc khởi động lại server. Đọc kỹ lệnh trước khi chạy.

Hỏi AI về MXterm Pro

Mở câu trả lời trực tiếp trong ChatGPT, Claude hoặc Perplexity, dựa trên trang này. Trợ lý AI tự viết, không phải chúng tôi, nên hãy kiểm tra nguồn nó trích dẫn.

Câu hỏi được gửiLưu SSH host trong MXterm Pro và dùng bảng SFTP, port forward, thống kê server thế nào?