воскресенье, 7 ноября 2010 г.

SSH Agent Forwarding

Возникла у меня на днях такая задачака:
Есть машина(m1) с парой ключей(private and public), я захожу через ssh на другую машину(m2), на которой лежит только публичный ключ, затем с машины(m2) хочу сделать clone git репозитория(на git'овом сервере тоже лежит публичный ключ), но git отвечает: Permission denied (publickey) т.к. моего private ключа на машине(m2) нет.


Решение проблемы:
  1. Запускаем ssh-agent на машине(m1):
    eval `ssh-agent`
    Его нужно запустить только если он ещё не запущен
  2. Добавляем ключ агенту:
    ssh-add
    По умолчанию добавится id_rsa ключ
  3. Проверяем добавился ли ключ:
    ssh-add -l
  4. Подключаемся к хосту через ssh клиенту с опцией -A(либо можно с опцией -o "ForwardAgent yes"):
    ssh -A somebody@somehost
    Либо можно добавить в ssh config:
    Host *
         ForwardAgent yes
  5. Делаем git clone или что мы там хотели и обязательно радуемся, потому-что все работает :)

Полезная ссылочка
An Illustrated Guide to SSH Agent Forwarding

Читать далее