Ssh-agent
Материал из noname.com.ua
ssh-agent
Иногда не удаляется файл сокета - нужно удалить вручную иначе агент молча не стартует
Суть проблемы
- Встроеный агент хоть и есть но не очень удобен так как сокет создает каждый раз новый
- Можно использовать более новый агент из
brew
Устновка своего агента
brew install openssh
- Создать файл
~/Library/LaunchAgents/org.homebrew.ssh-agent.plist
(кстати в этом месте лежит то что называется login items, точнее часть из них) - все пути с именес пользователя (mmazur) поправить на нужный
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.homebrew.ssh-agent</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/ssh-agent</string> <string>-D</string> <string>-a</string> <string>/Users/mmazur/.ssh-agent.sock</string> </array> <key>Sockets</key> <dict> <key>Listeners</key> <dict> <key>SockPathName</key> <string>/Users/mmazur/.ssh-agent.sock</string> <key>SockPathMode</key> <integer>384</integer> <!-- octal 0600 --> <key>SockPathGroup</key> <integer>0</integer> </dict> </dict> <key>EnableTransactions</key> <true/> </dict> </plist>
Обратить внимание на:
/usr/local/bin/ssh-agent
- агент установленный изbrew
- Ключи
-D
-a
- нужны для фоновой работы - Путь к сокету
/Users/mmazur/.ssh-agent.sock
Запуск агента
- Загрузить конфигурацию
launchctl load ~/Library/LaunchAgents/org.homebrew.ssh-agent.plist
Ошибка вида:
Bootstrap failed: 5: Input/output error Try re-running the command as root for richer errors.
Означает что нужно сделать unload
launchctl list | grep ssh
2086 0 com.openssh.ssh-agent - 0 org.homebrew.ssh-agent
Далее нужно остановить старого агента и запустить нового
launchctl stop com.openssh.ssh-agent
launchctl start org.homebrew.ssh-agent
launchctl list | grep ssh - 0 com.openssh.ssh-agent 14693 1 org.homebrew.ssh-agent
Использование агента
Для того что бы подключаться к агенту достаточно указать в .bashrc/.bash_profile
export SSH_AUTH_SOCK=/Users/mmazur/.ssh-agent.sock
(путь /Users/mmazur/.ssh-agent.sock
указан в настройках нового агента)