DEV Community

loading...

Fixing MacOS' SSH $PATH missing /usr/local/bin

Johnneylee Jack Rollins
・1 min read

Originally published to https://johnneyl.ee/writes/

Alt Text

Problem: /usr/local/bin missing from ssh $PATH

bash: docker: command not found

Exec ssh [localhost](http://localhost) docker

Normally, your paths include your /usr/local/bin, however, in macos you'll find that if you SSH into localhost (or indeed any macos host), it is missing. Such is the case when setting up a docker profile with an ssh-based remote host, for example. 🙄

To fix this, we need to safely⚠️ enable an option that's disabled in your sshd_config called PermitUserEnvironment

Solution: /etc/ssh/sshd_config & PermitUserEnvironment PATH,LANG

Edit sshd_config & ~/.ssh/environment

sed -i '' 's/#PermitUserEnvironment no/PermitUserEnvironment PATH,LANG/g' /etc/ssh/sshd_config

Bash:

echo "PATH=/usr/local/bin:$PATH" >> ~/.ssh/environment

Fish:

echo "setenv PATH /usr/local/bin:$PATH" >> ~/.ssh/environment

Conclusion:

🥳 ssh [localhost](http://localhost) docker works!🥳

Now go and cluster all your macbooks together with docker! 🥳

Discussion (0)