ls output does not have color while SSHing to another machine with iTerm2, but does with Terminal
ls output with colors (ls -G) is not the default option. Run the following command in your terminal to enable ls colors by default:

echo "alias ls='ls -G'" &gt;&gt; ~/.bashrc
source ~/.bashrc


This and all future terminal sessions will now display colors correctly.



If you're still not seeing colors on your remote (or local) session follow these steps:

In iTerm verify that you're sending a terminal type that supports colors. Open the preferences window -> Profiles -> Default -> Terminal. I'd recommend putting xterm-256color as the Terminal Type.



While connected to the remote machine, run ls -G and open the iTerm preferences again: preferences window -> profiles -> Default -> Colors. Adjust the ANSI Colors, and turn the minimum contrast down until the colors in the terminal window start to show color.



If the remote system supports ls --color=always, remove any existing aliases in ~/.profile or ~/.bashrc and update as follows:

echo "alias ls='ls --color=always'" &gt;&gt; ~/.bashrc