9

Which profile, .bashrc or .bash_profile, is the appropriate spot for ssh-agent? I'm looking for an answer that explains the different between an interactive shell and a login shell.

3 Answers 3

9

It depends somewhat on how you personally use shells.

An interactive shell is anything that has a terminal connected to its input and output. Login shells are spawned by /bin/login. Login shells source your .bash_profile. Most terminal emulators such as xterm start an interactive shell that is not a login shell. Interactive, non-login shells source your .bashrc.

What I typically do is have my .bash_profile source my .bashrc (after checking if it has already been sourced), and then I put my ssh-agent setup in my .bashrc.

2
  • What's the check in .bash_profile to see if .bashrc has been sourced already? Commented Sep 1, 2009 at 21:35
  • 2
    Nothing special. I generally just check to see if a variable I set in .bashrc is set. Commented Sep 1, 2009 at 22:20
2

You should use .bash_profile because .bashrc is sourced for every interactive shell and you only need one agent per login session.

0

ssh-agent is a wrapper program.
You would typically want to do a "exec ssh-agent bash" at the start.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.