Ssh-agent: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показано 20 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | [[Категория:MacOS]] |
+ | [[Категория:MacOS X]] |
− | [[Категория: |
+ | [[Категория:SSH]] |
=<code>ssh-agent</code>= |
=<code>ssh-agent</code>= |
||
+ | '''''<big><big>Иногда не удаляется файл сокета - нужно удалить вручную иначе агент молча не стартует</big></big>''''' |
||
+ | <PRE> |
||
+ | rm /Users/mmazur/.ssh-agent.sock |
||
+ | </PRE> |
||
+ | |||
+ | =Суть проблемы= |
||
+ | * Встроеный агент хоть и есть но не очень удобен так как сокет создает каждый раз новый |
||
+ | * Можно использовать более новый агент из <code>brew</code> |
||
+ | |||
+ | =Устновка своего агента= |
||
+ | |||
+ | * <code>brew install openssh </code> |
||
+ | * Создать файл <code>~/Library/LaunchAgents/org.homebrew.ssh-agent.plist</code> (кстати в этом месте лежит то что называется login items, точнее часть из них) |
||
+ | * все пути с именес пользователя (mmazur) поправить на нужный |
||
+ | <PRE> |
||
+ | <?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> |
||
+ | </PRE> |
||
+ | Обратить внимание на: |
||
+ | * <code>/usr/local/bin/ssh-agent</code> - агент установленный из <code>brew</code> |
||
+ | * Ключи <code>-D</code> <code>-a</code> - нужны для фоновой работы |
||
+ | * Путь к сокету <code>/Users/mmazur/.ssh-agent.sock</code> |
||
+ | |||
+ | =Запуск агента= |
||
+ | * Загрузить конфигурацию <code>launchctl load ~/Library/LaunchAgents/org.homebrew.ssh-agent.plist</code> |
||
+ | Ошибка вида: |
||
+ | <PRE> |
||
+ | Bootstrap failed: 5: Input/output error |
||
+ | Try re-running the command as root for richer errors. |
||
+ | </PRE> |
||
+ | Означает что нужно сделать unload |
||
+ | |||
+ | * <code>launchctl list | grep ssh</code> |
||
+ | <PRE> |
||
+ | 2086 0 com.openssh.ssh-agent |
||
+ | - 0 org.homebrew.ssh-agent |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | Далее нужно остановить старого агента и запустить нового |
||
+ | |||
+ | <PRE> |
||
+ | launchctl stop com.openssh.ssh-agent |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | launchctl start org.homebrew.ssh-agent |
||
+ | </PRE> |
||
+ | |||
+ | <PRE> |
||
+ | launchctl list | grep ssh |
||
+ | - 0 com.openssh.ssh-agent |
||
+ | 14693 1 org.homebrew.ssh-agent |
||
+ | </PRE> |
||
+ | ==Проблемы== |
||
+ | Иногда не удаляется файл сокета - нужно удалить вручную иначе агент молча не стартует (увидеть ошибку можно если запустить руками. где смотреть логи запускаемого сервиса - я не нашел) |
||
+ | <PRE> |
||
+ | rm /Users/mmazur/.ssh-agent.sock |
||
+ | </PRE> |
||
+ | |||
+ | =Использование агента= |
||
+ | Для того что бы подключаться к агенту достаточно указать в <code>.bashrc/.bash_profile</code> |
||
+ | <PRE> |
||
+ | export SSH_AUTH_SOCK=/Users/mmazur/.ssh-agent.sock |
||
+ | </PRE> |
||
+ | (путь <code>/Users/mmazur/.ssh-agent.sock</code> указан в настройках нового агента) |
||
+ | |||
+ | |||
+ | |||
+ | =Ссылки= |
||
+ | * https://xakep.ru/2018/02/16/launchctl-python/ |
||
+ | * https://xakep.ru/2017/10/24/macos-tuning/ |
||
+ | * https://xakep.ru/2017/11/16/macos-kung-fu/ |
Текущая версия на 18:22, 24 июля 2024
ssh-agent
Иногда не удаляется файл сокета - нужно удалить вручную иначе агент молча не стартует
rm /Users/mmazur/.ssh-agent.sock
Суть проблемы
- Встроеный агент хоть и есть но не очень удобен так как сокет создает каждый раз новый
- Можно использовать более новый агент из
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
Проблемы
Иногда не удаляется файл сокета - нужно удалить вручную иначе агент молча не стартует (увидеть ошибку можно если запустить руками. где смотреть логи запускаемого сервиса - я не нашел)
rm /Users/mmazur/.ssh-agent.sock
Использование агента
Для того что бы подключаться к агенту достаточно указать в .bashrc/.bash_profile
export SSH_AUTH_SOCK=/Users/mmazur/.ssh-agent.sock
(путь /Users/mmazur/.ssh-agent.sock
указан в настройках нового агента)