欢迎各位兄弟 发布技术文章
这里的技术是共享的
ssh 到 macos 的 ip 出现 Connection refused,,
同时 在远程 mac 上执行 macos nc -zvv 127.0.0.1 22 (或 macos nc -zvv 本机其它ip 22 ) 提示拒绝
当你尝试通过SSH连接到MacOS设备时遇到“Connection refused”错误,这通常意味着目标机器上的SSH服务没有运行或未正确配置。这里有一些步骤可以帮助你解决这个问题:
检查SSH服务是否开启:
打开Mac的“系统偏好设置”。
点击“共享”图标。
在服务列表中,找到并勾选“远程登录”。这将启用SSH服务。
确认防火墙设置:
如果你的Mac启用了防火墙,确保它没有阻止SSH连接(默认端口为22)。
你可以通过进入“系统偏好设置” -> “安全与隐私” -> “防火墙”选项卡来检查防火墙设置。点击“防火墙选项...”,确保“允许传入的连接”选项已开启,或者特别允许SSH服务。
检查IP地址和端口号:
确保你使用的是正确的IP地址和端口号。有时,网络配置的变化可能会导致IP地址改变。
你可以通过在Mac上打开终端,然后输入ifconfig
命令来查看当前的IP地址。
验证SSH守护进程的状态:
在Mac的终端中,你可以运行sudo launchctl list | grep ssh
来查看SSH服务是否正在运行。如果没有看到任何输出,或者看到的服务状态是“0”,则可能需要重启SSH服务。
重启SSH服务可以使用命令sudo launchctl stop com.openssh.sshd
和 sudo launchctl start com.openssh.sshd
。
重启电脑
检查连接权限:
确认你尝试连接的账户具有SSH访问权限。通常情况下,所有用户账户都应有此权限,但如果进行了特定的安全配置,则可能需要调整。
检查网络连通性:
使用ping
命令测试从你的计算机到目标Mac的网络连通性。例如,在命令行中输入ping [Mac的IP地址]
。如果无法ping通,说明两台机器之间的网络连接存在问题。
检查SSH配置文件:
如果以上步骤都无法解决问题,可能是SSH配置文件有问题。SSH配置文件位于/etc/ssh/sshd_config
。请确保没有禁止你的IP地址或用户组,并且监听了正确的接口和端口。
完成上述步骤后,再次尝试SSH连接。如果仍然遇到问题,可能需要更详细的诊断,比如查看系统日志以获取更多错误信息。在Mac上,你可以通过“控制台”应用查看相关日志。
在远程 mac 上执行 macos nc -zvv 127.0.0.1 22 (或 macos nc -zvv 本机其它ip 22 ) 提示拒绝
当你在 macOS 中使用 nc -zvv 127.0.0.1 22
命令来检查本地计算机上的 TCP 端口 22(通常是 SSH 服务端口)时,如果收到“拒绝”或“连接被拒绝”的提示,这通常意味着以下几种情况之一:
SSH 服务未运行:默认情况下,SSH 服务并不会在 macOS 上自动开启。你可以通过系统偏好设置来开启它:
转到 系统偏好设置 > 共享。
在左侧的选项中,勾选 远程登录。
防火墙设置:如果防火墙阻止了端口 22 的访问,可能会导致连接被拒绝。你可以检查防火墙设置:
转到 系统偏好设置 > 安全性与隐私 > 防火墙。
查看防火墙是否已开启,并确保 sshd
(SSH 服务)被允许通过防火墙。
端口不同:如果你在系统中更改了 SSH 服务的默认端口,使用 22 端口当然会导致连接失败。你可以检查 SSH 配置文件(通常为 /etc/ssh/sshd_config
)来确认当前的 SSH 端口设置。
网络配置问题:如果本地网络配置有问题,例如使用了 VPN 或代理设置,可能会导致网络请求失败。确保没有相关的网络限制。
检查 SSH 服务是否运行:
bash
ps aux | grep sshd
如果没有看到 SSH 服务正在运行,确保在系统偏好设置中启用它。
检查 SSH 配置:其它不需要改,只需要把 22 端口前面的注释去掉,
bash
sudo nano /etc/ssh/sshd_config
确认 Port
行是否设置为 22,如果未设置或设置为其他值,请调整并重启 SSH 服务。
重启 SSH 服务:
bash
sudo launchctl stop com.openssh.sshd sudo launchctl start com.openssh.sshd
检查防火墙设置:确保 SSH 服务在防火墙中被允许。
综上所述,请先确认 SSH 服务是否已经启动,以及防火墙和网络设置是否正常。这样应能解决连接被拒绝的问题。