我正在尝试使用 NC 在 OS X 上创建远程 shell。
我试过了nc -l 1337 -e /bin/bash
,但似乎NC 的 Mac 版本不支持该-e
选项。
有谁知道如何才能在 OS X 上实现远程 shell,最好只使用内置工具?
不幸的是,SSH 不是一个选项。我所做的工作只能通过命令行完成(因此无法更改 GUI 选项)。此外,我试图避免使用密码,因为这会给我的客户端程序带来问题。
编辑:抱歉信息不足。我以为我已经添加得足够多了。
基本上,我有几个运行 OS X 的 VM,需要它们能够使用彼此的命令行。我的计划是让 NC 在每个 VM 上运行,然后主 VM 可以通过 PHP 脚本向它们发送命令。
此外,想要使用内置命令/工具的原因是因为我最终将在物理硬件上运行,并且 Mac 将定期添加和删除,并且我不想在客户端机器上安装新软件。
避免使用 GUI 操作的原因是,这将在无人监督的情况下运行,并且我试图使其尽可能无缝。当一台机器连接时,我可以启动一个命令,我需要执行许多命令和文件传输,这就是我需要远程 shell 的原因。
答案1
通常的方法是启用ssh
服务以进行命令行访问。
非常 Mac 的方式来做到这一点:
- 进入系统偏好设置应用程序
- 选择共享
- 勾选“远程登录”复选框
您现在应该能够使用任何标准ssh
客户端进行连接。Mac 和 Linux/Unix 计算机都内置了此功能。油灰在 Windows 上是一个不错的选择。
答案2
嗯,您在使用 NC 时遇到的问题是(假设您说的是 NETCAT),Apple 版本的 bin 中没有 -e 选项。
最好的解决方案是,使用苹果 SDK 编译一个 GNU 版本的 NC,然后用你自己的 GNU NC 版本替换苹果版本。据我所知,苹果没有计划向 appleNC 添加 -e 选项。
我不得不为一些缺少的苹果守护进程做这件事。
希望这可以帮助
答案3
首先,nc
(我之前对此一无所知)似乎是一种telnet
程序。充其量是不安全的,而且相当简陋。我不建议尝试使用它。
其次,您没有充分描述您要做什么。您是否尝试从另一台计算机远程登录 Mac OS X 计算机?您是否尝试从 OS X 计算机远程登录到另一台计算机?您是否尝试创建某种可从外部访问的远程服务器?
为什么不能使用SSH
?为什么可以通过系统偏好设置进行调整?
答案4
如果您设置了一个没有密码的 SSH 密钥(例如使用“ssh-keygen -t rsa”),然后将公钥(在 ~/.ssh/id_rsa.pub 中找到)放入远程用户主机中的 ~/.ssh/authorized_hosts 文件中,那么您将不需要交换任何密码,并且所有操作都可以使用 ssh 从命令行完成。