我有一台 OSX 机器作为服务器。操作系统是 OSX El Capitan。它需要的服务之一是sshd
。我试图解决的问题是,每当我重新启动时,我都需要亲自到服务器登录以启动 sshd 和远程处理。我该如何摆脱这个不必要的步骤?我已经在系统偏好设置中的共享中启用了屏幕共享和远程登录。这些设置似乎只会影响至少有一个用户登录时发生的情况。
我认为launchd
LaunchDaemons 至少在原则上应该启动,无论是否有人实际登录。但是,我不确定 sshd 是设置为 LaunchAgent 还是 LaunchDaemon。另外,我怀疑如果sshd
您要将其作为 LaunchDaemon 运行,您需要为其创建单独的用户和组。
另一个复杂因素是 FileVault。您可以(尽管如果可能的话我不会)设置一个用户自动登录。如果您启用了 FileVault,这似乎无法完成,因为它似乎加密了主目录。这显然使 ssh 登录变得复杂。解密似乎需要物理登录。
这是您真正需要 OSX Server 的情况之一吗?
答案1
根据您的描述,您需要解锁 FileVault 磁盘加密才能运行操作系统。
如果要远程重启机器并让其自动解锁磁盘加密,则需要使用已认证重启。
简而言之,您需要发出以下命令并提供管理密码(通常两次:一次用于 sudo,一次用于解锁驱动/
器):
sudo fdesetup authrestart
命令执行后机器会重启,无需输入密码。SSH 和其他守护进程随后会被启动。
答案2
SSH 在 OS X 上作为启动守护进程运行,这意味着当它打开时,无论是否有人登录,它都可用。
听起来您已启用 FileVault;如果是这样,这会阻止操作系统启动,直到用户验证身份并解锁系统卷。这不仅是 SSH,而是整个操作系统。
基本上,FileVault 是不允许无人值守启动的,如果需要无人值守启动,需要关闭 FileVault。