ssh -A не дозволяє належним чином переадресувати з'єднання агента аутентифікації


22

Мені подобається ssh -A, що дозволяє використовувати мій локальний ключ ssh при встановленні з'єднання з віддаленого сервера. Наприклад, я ssh -A host1.example.comі тоді звідти можу ssh host2.example.com(або використовувати git), і він використовує мій ssh ​​ключ від оригінальної машини, який у цьому випадку повинен бути моїм mac. Хоча це завжди працювало для мене на Debian / Ubuntu, воно не працює на моєму новому mac (Lion).

Що я тут пропускаю? Як налаштувати ssh на правильну роботу з -A? Чи потрібно мені ssh, який не є стандартним для MacOS?

Відповіді:


33

Насправді, дуже проста відповідь полягає в тому, що потрібно бігати

ssh-add

і тоді все працює.

В основному, macOS вже має налаштований для вас ssh-агент, але після кожного перезавантаження потрібно додати до нього свої ключі. ssh-add надає ssh-агенту доступ до ваших ключів протягом поточного циклу завантаження. Вам доведеться ввести пароль для вашого приватного ключа, якщо ви його створили.


Це вирішило мою останню проблему переадресації ssh після оновлення до macOS (через 5 років, все ще корисна відповідь, дякую @rfay)
23tux

Це і працює, але деякі пояснення, чому було б корисно / допоможуть людям запам'ятати цю команду.
Адам Паркін

2
@AdamParkin додав ще один абзац з поясненням.
rfay

1

Концепція ssh -A- агенти ssh. Вони працюють у фоновому режимі та за допомогою використання змінних оточуючих середовищ, агент може бути розташований і автоматично використаний для автентифікації під час входу на інші машини за допомогою ssh. Перегляньте мапа сторінки ssh-агента для отримання більш детальної інформації.

У Mac OS X ssh-агент слід запустити на вимогу.

Для отримання додаткової інформації див:


1

З ОС X 10.8 вам потрібно це зробити один раз:

sudo touch /var/db/useLS

І додайте це як частину свого ~/.bash_profile:

if [ -f ~/.ssh/id_rsa ]; then
    ssh-add -K ~/.ssh/id_rsa 2>/dev/null
fi

Примітка: цей рецепт є частиною моїх бедуїнських сценаріїв.


Гм, щойно спробував це; тоді агент запускається, але вам все одно доведеться ssh-add, щоб все працювати. Отже, наскільки я розумію, ssh-add досі є відповіддю. Я думаю, я повинен додати його до свого .bash_profile.
rfay

хаха, що робити, якщо для мого приватного ключа потрібна парольна фраза?
Jeffrey04
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.