How do I open port 22 in OS X 10.6.7

David Erwin picture David Erwin · Jun 11, 2011 · Viewed 128.6k times · Source

I am trying to open port 22 on osx so I can connect to localhost using ssh. This is my current situation:

ssh localhost
ssh: connect to host localhost port 22: Connection refused

I have generated a key and tossed it into my authorized_keys file like so:

sh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

A "Network Utility" port scan confirms that 22 (and surprisingly 23) are closed.

Context: I am working on getting Hadoop set up locally. In my configuration, I am running services on localhost:####s and need to open communications to them via ssh.

How can I open 22? or could I be up against another issue (improperly generated key perhaps?)

Answer

Haukman picture Haukman · Jun 11, 2011

I think your port is probably open, but you don't have anything that listens on it.

The Apple Mac OS X operating system has SSH installed by default but the SSH daemon is not enabled. This means you can’t login remotely or do remote copies until you enable it.

To enable it, go to ‘System Preferences’. Under ‘Internet & Networking’ there is a ‘Sharing’ icon. Run that. In the list that appears, check the ‘Remote Login’ option. In OS X Yosemite and up, there is no longer an 'Internet & Networking' menu; it was moved to Accounts. The Sharing menu now has its own icon on the main System Preferences menu. (thx @AstroCB)

This starts the SSH daemon immediately and you can remotely login using your username. The ‘Sharing’ window shows at the bottom the name and IP address to use. You can also find this out using ‘whoami’ and ‘ifconfig’ from the Terminal application.

These instructions are copied from Enable SSH in Mac OS X, but I wanted to make sure they won't go away and to provide quick access.