如何从命令行在 Mac 上启用 SSH
目录:
所有运行 macOS 或 Mac OS X 的现代 Mac 都默认预装了 SSH,但 SSH(安全外壳)守护进程也默认被禁用。高级 Mac 用户可能会很高兴知道启用 SSH 和禁用 SSH 的功能都完全可以从 Mac OS 的命令行获得,从而允许以简单的方式允许或禁止远程连接到计算机。无需加载、下载或编译任何 kext,即可从任何 Mac 上的终端打开 SSH,您只需执行系统设置命令,正如我们将在本教程中展示的那样。
快速旁注;本指南适用于所有版本的 macOS 和 Mac OS X,但实际上是针对在终端上花费大量时间的更高级用户。如果您想关闭和打开 SSH 并避免使用命令行,您可以通过在 Mac 的“共享”首选项面板中启用“远程登录”来实现,或者通过不选中它来停止服务器。如果您不经常使用ssh,则没有理由在Mac上启用ssh服务器。
如何通过终端检查Mac OS是否启用了SSH远程登录
想查看Mac 上SSH 的当前状态?使用 systemsetup 命令字符串,我们可以快速确定当前是否在任何 Mac 上启用了 SSH 和远程登录:
sudo systemsetup -getremotelogin
如果当前启用了远程登录和SSH,则命令和报告将显示“远程登录:开启”,而如果禁用SSH 并处于默认macOS 状态,它将显示“远程登录:关闭” .
使用系统设置从命令行在Mac 上启用SSH
要快速打开 SSH 服务器并允许传入的 ssh 连接到当前的 Mac,请在系统设置中使用 -setremotelogin 标志,如下所示:
sudo systemsetup -setremotelogin on
sudo 是必要的,因为systemsetup 命令需要管理员权限,就像您从Mac 上的“共享”首选项启用“远程登录”以启用安全shell 服务器时一样。
没有确认信息或消息表明远程登录和SSH 已启用,但您可以使用前面提到的-getmorelogin 标志来检查和验证SSH 服务器确实正在运行。是的,使用 -setremotelogin 适用于在 Mac 上同时启用 ssh 和 sftp 服务器。
启用ssh后,任何用户帐户或在当前Mac上登录的人都可以使用针对Mac IP地址的ssh命令远程访问它,如下所示:
一旦连接,用户将可以通过命令行远程访问计算机,如果他们有管理员帐户或管理员密码,他们也将拥有完全的远程管理访问权限。
使用系统设置在Mac OS 上关闭SSH
如果你想从命令行禁用SSH服务器,从而阻止远程连接,只需使用系统设置的-setremotelogin标志将“打开”切换为“关闭”,如下所示:
sudo systemsetup -setremotelogin off
再次,sudo 是关闭SSH 和禁用ssh 和sftp 服务器所必需的。
当您成功执行该命令时,您将被询问:“您真的要关闭远程登录吗?如果这样做,您将失去此连接并且只能在服务器本地重新打开它(是/否)?”所以输入“yes”进行确认,这将禁用 SSH 并断开所有与相关 Mac 的活动 SSH 连接。如果你想避免输入是/否,也许是为了包含在安装脚本中或其他情况下,你可以使用 -f 标志来绕过这样的问题:
sudo systemsetup -f -setremotelogin off
同样,您也可以使用-f 跳过任何关于启用SSH 的提示。
systemsetup -f -setremotelogin on
请注意,无论您是从命令行关闭或启用SSH,Mac OS X GUI 中的“远程登录”系统首选项面板设置也会相应地进行调整以反映更改。