How to reload the ssh config file in Mac OS X via terminal

54,033

Solution 1

In my case, I finally discovered that the issue wasn't the config file (ssh -vvv -F /dev/null -i /some/path/some_other_key and even moving the old keys in ~/.ssh/ elsewhere, nonetheless still managed to magick the old key out of nowhere), but rather the ssh agent. I had to clear it with ssh-add -D.

man ssh_config clarifies that -i on ssh should take precedence over the ~/.ssh/config file; so if you're doing this and it's still not working, some undocumented higher priority power is butting in.

Solution 2

You may want to look at the Atlassian documentation on using multiple identities. A case like the one I think you're describing - switching accounts - may be best handled with an SSH config file that accommodates multiple accounts simultaneously instead of scripting.

They provide the following example for the config file at ~/.ssh/config:

# Default GitHub user
Host github.com
 HostName github.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/personalid

# Work user account
Host bitbucket.org
 HostName bitbucket.org
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/workid
Share:
54,033

Related videos on Youtube

Daniel Jacobson
Author by

Daniel Jacobson

Updated on September 18, 2022

Comments

  • Daniel Jacobson
    Daniel Jacobson over 1 year

    When I update my ssh config file so I can switch my current github account, the changes wont work properly unless I restart iTerm. I'm working on a script to automate the github account switch and I'd like to have the script reload the config settings in the updated config file. How can I achieve this?

    • Jakuje
      Jakuje over 7 years
      How, do you switch accounts? Do you use ssh-agent? The ssh_config is read for every single invocation of ssh.
    • JasKerr
      JasKerr over 7 years
      Can you give us more detail about the config file? Also, could you define different hosts for the different github accounts, and avoid the reloading problem?
  • jpaugh
    jpaugh about 6 years
    Note you could also use different Host nicknames for the same HostName, with different IdentityFiles for each: Host github-charlie, Host github-sam
  • Paul
    Paul over 4 years
    ssh-add -D did the trick
  • Admin
    Admin almost 2 years
    that's it! - I've been looking for why my changes never reflected... ssh-add -D refreshed it.