Спробуйте ssh-add, вам потрібно ssh-agentпрацювати і тримати ваш приватний ключ
(Гаразд, відповідаючи на оновлене запитання, ви спершу запускаєте ssh-keygenдля створення відкритого та приватного ключа, як пояснив Джефромі . Ви ставите відкритий ключ на сервер. Ви повинні використовувати пароль, якщо у вас немає еквівалента звичайного -текстовий пароль у вашому приватному ключі. Але коли ви це зробите, це потрібно як практичне питання, як пояснено нижче.)ssh-agent
Ви хочете працювати ssh-agentу фоновому режимі під час входу. Після входу в систему ідея полягає в тому, щоб запустити ssh-addодин раз і лише один раз, щоб надати агенту свою парольну фразу, щоб розшифрувати ваш ключ. Потім агент просто сидить у пам’яті з розблокованим і завантаженим ключем, готовий до використання кожного разу, коли ви кудись схилитесь.
Усі команди ssh-сім'ї 1 звернуться до агента і автоматично зможуть користуватися вашим приватним ключем.
У системах OSX (помилка, macOS ), GNOME та KDE ssh-agentзазвичай запускається автоматично. Я детально розберуся в тому випадку, якщо, як і я, у вас є також Cygwin або інше середовище Windows, де це, безумовно, зроблено не для вас.
Початок тут: man ssh-agent.
Існують різні способи автоматичного запуску агента. Як пояснюється головна сторінка, ви можете запустити її так, щоб вона була батьківською для всіх інших процесів вашого сеансу входу. Таким чином, змінні середовища, які вона надає, автоматично будуть знаходитись у всіх ваших оболонках. Коли ви (пізніше) викликаєте ssh-addабо sshобидва отримаєте доступ до агента, оскільки всі вони мають змінні середовища з іменами магічних сокетів або будь-яким іншим.
Крім того, ви можете запустити агент як звичайна дитина, зберегти налаштування середовища у файлі та джерело цього файлу у кожній оболонці, коли він запускається.
Мої системи OSX та Ubuntu автоматично виконують налаштування запуску агента, тому все, що мені потрібно зробити, це запустити ssh-addодин раз. Спробуйте запустити ssh-addі побачити, чи працює він, якщо так, то вам просто потрібно зробити це один раз за перезавантаження.
Моїй системі Cygwin потрібно було це зробити вручну, тому я це зробив у своєму, .profileі у мене є .bashrcджерело .profile:
. .agent > /dev/null
ps -p $SSH_AGENT_PID | grep ssh-agent > /dev/null || {
ssh-agent > .agent
. .agent > /dev/null
}
.agentФайл створюється автоматично з допомогою сценарію; він містить визначення змінних середовищ та експорт. Вищенаведене намагається створити файл .agent, а потім спробує отримати ps(1)агент. Якщо це не працює, він запускає агент і створює новий файл агента. Ви також можете просто запустити, ssh-addі якщо це не вдасться запустити агент.
1. І навіть локальний і віддалений sudoз правильним розширенням пам.