Я пытаюсь автоматически выполнить следующие команды при входе на сервер через ssh:
ssh-agent /bin/bash
ssh-add ~/.ssh/id_rsa
У моего ключа ssh есть фраза-пароль, и я могу ввести ее один раз для входа в систему.
Я попытался поместить это в мой файл .bashrc, однако я считаю, что ssh-agent запускает новый сеанс bash. Когда я пытаюсь войти в систему после этого в моем .bashrc, он застревает, и мне нужно набрать «exit», чтобы увидеть приглашение «ввести пароль для разблокировки».
Любые другие предложения?
Сервер работает под управлением Ubuntu LTS
git pull
и на удаленном сервереОтветы:
Вы можете попробовать добавить это:
Таким образом,
ssh-agent
новая оболочка не запускается, она просто запускается в фоновом режиме и выплевывает команды оболочки для установки соответствующих переменных среды.Как сказано в комментарии, может быть, вы вообще не хотите запускать агент на удаленном хосте, а скорее на коробке, с которой вы работаете, и использовать
направить службы вашего локального агента ssh на удаленный хост.
Из соображений безопасности следует использовать переадресацию агентов только на хосты, управляемые надежными людьми, но это лучше, чем запускать полный агент удаленно в любое время.
источник
ssh-agent /bin/bash
сssh-agent -s
, а затем я пытаюсь сделатьgit pull
, я еще попросил ключевую фразу секретного ключа , чтобы разблокировать его. Это не совсем то, что я хочу, я хочу, чтобы при вводе ssh-add нужно было вводить только фразу-пароль, и не повторять ее каждый раз, когда я выполняю какие-либо команды git. Любые идеи?Одним из вариантов является использование Funtoo в брелок . Затем вы можете вставить эту строку в оболочку bash:
Это делает то же самое (запускает агент ssh и т. Д.), Но также не запускает процесс ssh-agent для каждой подоболочки. Вместо этого он ищет «уже запущенные» экземпляры, которыми вы владеете, и присоединяет вас к ним.
источник