Ssh-agent: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
(Новая страница: «Категория:SSH =<code>ssh-agent</code>=»)
 
 
(не показаны 22 промежуточные версии этого же участника)
Строка 1: Строка 1:
  +
[[Категория:MacOS X]]
 
[[Категория:SSH]]
 
[[Категория: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 указан в настройках нового агента)


Ссылки