ssh-agent é um daemon que armazena em cache a chave ssh descriptografada na memória quando você usa ssh-add para não precisar digitar a senha para descriptografá-la sempre que ssh tentar usá-la para autenticação. Estar em cache na memória significa que da próxima vez em que ssh-agent for iniciado, a chave deve ser descriptografada e adicionada ao agente novamente, e é por isso que você precisa ssh-add novamente.
A parte /bin/bash não é realmente necessária. Normalmente, quando você inicia ssh-agent , ele imprime algumas variáveis de ambiente para stdout que devem ser eval ed, de forma que ssh saiba onde está o ssh-agent socket. Se, em vez disso, você der o comando ssh-agent a quando for iniciado, ele executará esse comando com as variáveis de ambiente definidas.
Isso significa que a instância do bash que você está usando depois de executar o comando é uma sub-inicial do que você estava usando antes. O problema de adicionar isso ao seu .bashrc é que o novo shell ssh-agent iniciará executando ssh-agent novamente, causando um loop recursivo, que você não deseja. Em vez disso, convém começar com ssh-agent no seu .bash_profile e avaliar a saída de iniciar um subshell e, em seguida, usar ssh-add manualmente, uma vez a cada vez que você efetuar login.
Outra opção seria usar a emulação de agente SSH do GNOME Keyring em vez de usar ssh-agent . Ao contrário de ssh-agent que não salva sua senha, o Chaveiro do GNOME armazena a frase secreta na chave em um chaveiro para que você não precise adicionar chaves manualmente.