1 điểm bởi GN⁺ 2025-09-19 | 1 bình luận | Chia sẻ qua WhatsApp
  • Khi FileVault được bật, trong lúc macOS khởi động, volume dữ liệu ở trạng thái bị khóa
  • Tệp cấu hình OpenSSH được lưu trên volume dữ liệu, nên trong thời gian bị khóa, các phương thức xác thực hiện có hoặc quyền truy cập shell sẽ không khả dụng
  • Nếu Remote Login (SSH) được bật, có thể mở khóa volume dữ liệu từ mạng từ xa bằng xác thực mật khẩu
  • Cách này không cho phép phiên SSH ngay lập tức; sau khi mở khóa sẽ xảy ra hiện tượng kết nối SSH tạm thời bị ngắt
  • Sau khi volume dữ liệu được mount và các dịch vụ cần thiết được khởi động, mới có thể truy cập SSH

Tổng quan về tích hợp SSH và FileVault của Apple

  • Trên macOS khi FileVault được bật, volume dữ liệu sẽ bị khóa nên ngay cả sau thời điểm khởi động cũng không thể truy cập volume đó
  • Vì mọi tệp cấu hình hệ thống và theo tài khoản của OpenSSH đều được lưu trong volume dữ liệu, nên khi volume dữ liệu đang bị khóa thì các phương thức xác thực được cấu hình thông thường hoặc quyền truy cập shell nhìn chung sẽ bị vô hiệu hóa

Mở khóa từ xa bằng Remote Login (SSH)

  • Ngay cả khi volume dữ liệu vẫn bị khóa sau khi khởi động, nếu Remote Login (đăng nhập SSH) được bật thì hệ thống vẫn cho phép thử xác thực mật khẩu qua mạng
  • Người dùng có thể dùng SSH để xác thực bằng mật khẩu từ xa và mở khóa volume bị khóa bởi FileVault

Hạn chế và quy trình mở khóa

  • Tính năng này cho phép mở khóa volume dữ liệu, nhưng không có nghĩa là phiên SSH sẽ được kết nối ngay lập tức
  • Ngay khi volume dữ liệu được mở khóa, macOS sẽ tiến hành mount volume và khởi chạy các dịch vụ hỗ trợ phụ thuộc vào volume đó, trong thời gian này sẽ xảy ra hiện tượng kết nối SSH bị ngắt trong chốc lát
  • Sau khi quy trình đó hoàn tất, SSH và các dịch vụ đã được bật khác mới có thể sử dụng bình thường

Được giới thiệu trong macOS 26 Tahoe

  • Tính năng mở khóa từ xa volume dữ liệu qua SSH lần đầu được giới thiệu trong macOS 26 Tahoe

1 bình luận

 
GN⁺ 2025-09-19
Ý kiến Hacker News
  • Khi bật FileVault, tôi thấy rằng volume dữ liệu sẽ bị khóa và không thể truy cập trong lúc khởi động hoặc sau khi khởi động cho đến khi xác thực bằng mật khẩu tài khoản; OpenSSH trên macOS lưu cả tệp cấu hình hệ thống lẫn cấu hình theo tài khoản trên volume dữ liệu. Vì vậy, trong lúc FileVault đang khóa, thường sẽ không thể dùng phương thức xác thực đã cấu hình hay truy cập shell. Tuy nhiên, nếu đã bật Remote Login thì xác thực bằng mật khẩu qua SSH vẫn khả dụng ngay cả trong tình huống này. Nhờ đó có thể mở khóa volume dữ liệu từ xa qua mạng. Dù vậy, phiên SSH sẽ không được tiếp tục ngay lập tức; sau khi mở khóa volume qua SSH, kết nối sẽ tạm thời bị ngắt trong lúc macOS hoàn tất việc mount volume và khởi động lại dịch vụ, sau đó SSH (và các dịch vụ khác) sẽ hoạt động bình thường. Đây thực sự là một thay đổi rất đáng mừng

  • Tôi tự hỏi liệu điều này có nghĩa là giờ đây có thể vận hành một máy chủ Mac mini hoàn toàn từ xa sau khi tự khởi động lại vì mất điện mà không cần cắm bàn phím vật lý hay không. Đây là một thay đổi thực sự tuyệt vời

    • Tôi đã tự kiểm thử và xác nhận nó hoạt động hoàn hảo
      1. Bật General > Sharing > Remote Management
      2. Sau khi khởi động lại, khi SSH vào sẽ thấy thông báo: "Hệ thống này đang bị khóa. Hãy dùng tên tài khoản và mật khẩu để mở khóa. Sau khi mở khóa, có thể kết nối bình thường"
      3. Khi xác thực thành công qua SSH, kết nối SSH sẽ bị ngắt và hiện thông báo: "Đã mở khóa hệ thống. Bây giờ có thể xác thực bình thường qua SSH"
      4. SSH vào lại thì có thể truy cập bình thường
    • Cũng có thể dùng lệnh sau
      sudo fdesetup authrestart -delayminutes -1
      
      Cách này sẽ cho phép tự động đăng nhập bằng tài khoản đã chọn chỉ trong lần khởi động lại tiếp theo. Nó tiện vì không cần nhập mật khẩu, nhưng có rủi ro về bảo mật. Tùy tình huống mà có thể chấp nhận được
    • Tôi thực sự tò mò vì sao lại chọn macOS làm hệ điều hành máy chủ. Bản thân tôi cũng thấy phần cứng Mac mini rất hấp dẫn nên từng cân nhắc. Nhưng tôi lại ngần ngại việc chạy Linux thay vì macOS
    • Trước đây tôi từng phải tự tay rút server khỏi rack, lau bụi, cắm màn hình/bàn phím và đăng nhập để mở khóa vì một đồng nghiệp lỡ bật FileVault trên máy CI. Giờ đã có thể mở khóa bằng SSH nên nếu chuyện đó lặp lại thì có thể xử lý ngay từ xa
    • Tôi rất hiểu sự bất tiện khi một máy Mac từ xa có bật FileVault bắt buộc phải đăng nhập vật lý để lên mạng lại sau khi mất điện. Tôi muốn biết liệu sau khi reboot có thể truy cập GUI hoàn toàn từ xa hay không. Tôi đang cân nhắc mua một chiếc Mac mini cho homelab, và thậm chí còn nghĩ tới việc có cần dùng thiết bị remote như KVM hay không nếu cần
  • Tôi muốn nói rằng đây là một thay đổi cực lớn cho các môi trường Mac không phải dùng cá nhân như trong công ty. Tỷ lệ giá/hiệu năng và chất lượng của Mac Mini khá ổn cho mục đích tự động hóa, và ở công ty tôi cũng đã dần tăng triển khai nếu không vì vấn đề này. Vấn đề FileVault là một trong những nguyên nhân chính cản trở

    • Tôi từng quan tâm đến việc dùng Mac như một máy chủ đa dụng. Tôi muốn hỏi có thiết lập hay cách làm bổ sung nào để quản lý nó dễ hơn khi dùng làm server không, và liệu mọi người đang chạy workload dành riêng cho Mac hay cũng vận hành workload Linux dạng container
  • Tôi rất vui khi thấy macOS 26 Tahoe bổ sung tính năng mở khóa volume dữ liệu qua SSH. Sau khi nâng cấp Tahoe gần đây, tôi đã ngạc nhiên vì SSH vào được, và giờ mới biết đó là nhờ thay đổi này. Bình thường tôi không tắt máy Mac, nhưng thỉnh thoảng cần truy cập từ xa thì lại quên mất hôm trước đã cài một bản cập nhật lớn và thấy bối rối. Thay đổi lần này giúp tôi bớt lo hơn

  • Có lẽ điều này có nghĩa là giờ đây volume hệ thống không còn được mã hóa bằng FileVault nữa. Tôi nghĩ vậy vì volume hệ thống là chỉ đọc, nội dung cố định và giống nhau trên mọi máy macOS. Lập luận rằng hệ thống có thể khởi động đầy đủ cả phần mạng rồi mới yêu cầu giải mã volume dữ liệu cũng khá thuyết phục. Nếu FileVault thực sự bỏ qua mã hóa volume hệ thống thì đây là một thay đổi rất hợp lý. Cũng xin nhắc rằng với công nghệ overlay, nhiều trường hợp trông như đang ghi vào phân vùng hệ thống nhưng thực tế lại ghi vào volume dữ liệu

    • Các thông tin như mật khẩu WiFi cũng được lưu trên volume dữ liệu, nên không phải lúc nào mạng cũng sẽ hoạt động
  • Đây là một thay đổi thú vị, nhưng tôi tự hỏi liệu vấn đề "race condition" từng xảy ra trong phiên đồ họa, chẳng hạn khi shell nằm trên volume dữ liệu, có áp dụng với SSH hay không. Ví dụ, khi chọn khôi phục ứng dụng lúc khởi động lại, đã từng có tình huống ứng dụng khởi chạy trước khi mọi volume được mount xong khiến shell không chạy được. Trường hợp này thường xảy ra khi cài shell bằng Nix. Có vẻ SSH cũng có khả năng gặp vấn đề tương tự. Tôi muốn biết liệu chuyện này đã được xử lý ở cấp độ hệ thống chưa

    • Trong quá trình mở khóa bằng SSH, kết nối sẽ bị đóng ngay sau khi volume dữ liệu được mở khóa. Sau khi mount volume xong, chỉ cần kết nối lại thì shell sẽ chạy nên không có vấn đề này. Khi dùng Nix store, tôi từng xử lý bằng một shim dùng wait4path. Chỉ cần cài sẵn shim vào một đường dẫn đã biết trên volume dữ liệu và đặt nó làm login shell
    • Apple chặn tận gốc vấn đề này bằng cách kết thúc mọi tiến trình sau khi mở khóa thiết bị ("userspace reboot")
    • Tôi nghĩ đa số sẽ được giải quyết chỉ bằng việc kết nối lại. Đặc biệt với SSH thì thường đã có cơ chế thử lại mạng nên không phải vấn đề lớn
    • Tôi cho rằng trường hợp này có thể giải quyết bằng tiện ích wait4path vốn đã có trong OS từ lâu
  • Tôi thực sự thấy đây là một thay đổi đáng mừng. Trước giờ tôi đã phải tắt FileVault chỉ vì thiếu tính năng này

  • Tôi đang thử Full Disk Encryption của Omarchy (một cấu hình Arch rất thiên về quan điểm) và cân nhắc xem có thể dùng nó làm VM chính hay không. Khi trực tiếp ngồi trước máy, tôi có thể truy cập desktop tăng tốc GPU và mọi tác vụ tính toán dài hạn. Nhưng nếu tôi ở xa nhiều tuần và máy bị reboot, việc bắt buộc phải nhập mật khẩu đĩa trực tiếp khiến tôi ngần ngại thử. Nó đang chạy trên ProxMox, nhưng do các thiết lập như USB passthrough nên không thể truy cập bằng trình xem VNC tiêu chuẩn. Tôi tự hỏi liệu Omarchy có thử cách mở khóa từ xa như macOS hay không

    • Trên Linux, từ rất lâu rồi đã có thể triển khai mở khóa từ xa bằng cách đưa dropbear vào initramfs
  • Tôi chắc chắn ở đâu đó sẽ có một bề mặt tấn công lỗ hổng

    • Ngoài rủi ro bảo mật thông thường của SSH dùng mật khẩu, tôi không nghĩ ra rủi ro bổ sung nào cụ thể. Nếu lo lắng thì đặt nó sau một firewall như Wireguard có lẽ đã cải thiện đáng kể. Trước đây trên Mac server phải tắt FileVault, nên so ra đây vẫn là một thay đổi đáng hoan nghênh hơn nhiều
    • Với kinh nghiệm từ các vấn đề bảo mật như Blastdoor, tôi luôn có xu hướng thận trọng với những thay đổi kiểu này
  • Tôi từng có một chiếc Mac mini mà đã từ bỏ cho homelab chỉ vì thiếu tính năng này, nhưng giờ tôi cảm thấy mọi thứ đã khác hẳn