SSH into Kubernetes nodes from your Mac
kubectl answers most questions. For the rest (the kubelet journal, the container runtime, a service nobody exposed) you need the node.
By Lucas Russo, developer of SSHive · Updated
kubectl covers most of Kubernetes from your Mac. When a pod will not start and its logs say nothing, though, the answer is often on the node: the kubelet journal, the container runtime, a full disk. That is SSH work, and it usually concerns several nodes at once.
SSHive keeps a profile per node, control plane and workers, in a folder per cluster. kubectl itself runs where it is configured, in the macOS Terminal or on an admin host you reach over SSH; SSHive is the window onto the nodes.
Debugging at node level
A pod stuck in CrashLoopBackOff with nothing useful in
kubectl logs? Open the node's session and look underneath Kubernetes: journalctl -u kubelet -f, crictl ps -a, crictl logs <id>, df -h. Save them as snippets and they are one click away on every node. When the problem spans the cluster, broadcast the same check to every node and compare the tabs.Cluster services on your Mac
To open Argo CD, Grafana or an internal admin page that only has a ClusterIP, there are two routes.
kubectl port-forward in the macOS Terminal is quickest for a one-off. For something you open every day, a local tunnel on a node's profile, from a local port to the service's ClusterIP and port, comes back each time you connect to that node.What is free here, and what needs Pro
SSH to a node, SFTP, 3 snippets of your own and one local tunnel per profile are free, with 2 SSH sessions at once, which is tight for a cluster. SSHive Pro removes the session and profile limits and adds broadcast and the MCP server, for $12.99 once.
Frequently asked questions
Can I run kubectl exec in SSHive?+
Yes, in the session of any machine where kubectl is configured:
kubectl exec -it <pod> -- sh gives you a shell in the container, in an SSHive tab. A snippet such as kubectl exec -it {{pod}} -n {{namespace}} -- sh asks for the pod and the namespace when you insert it.Can Claude run kubectl through SSHive?+
Yes, if kubectl is configured on the machine the session is open to. With the MCP server turned on (Pro, on the Mac), Claude Code or Cursor call
ssh_execute in that session, with kubectl get pods -n shop for example, read the result and choose the next command. What the assistant reads is sent by its client to the model provider, so remove production clusters from its scope if that matters to you.Related SSHive features
Try SSHive Free for macOS
Get the all-in-one SSH, SFTP, RDP and VNC client for Mac. Free download, no signup required.