Ssh-agent

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску


ssh-agent

Суть проблемы

  • Встроеный агент хоть и есть но не очень удобен так как сокет создает каждый раз новый
  • Можно использовать более новый агент из brew

Устновка своего агента

  • brew install ssh
  • Создать файл ~/Library/LaunchAgents/org.homebrew.ssh-agent.plist (кстати в этом месте лежит то что называется login items, точнее часть из них)
<?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/jknight/.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
  • launchctl list | grep ssh
2086       0          org.openbsd.ssh-agent
-          0          org.homebrew.ssh-agent


Далее нужно остановить старого агента и запустить нового

launchctl stop  com.openssh.ssh-agent
launchctl start org.homebrew.ssh-agent
<PRE>

<PRE>
launchctl list | grep ssh
-        0    org.openbsd.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 указан в настройках нового агента)