Попробуйте ssh-add
, вам нужно ssh-agent
запустить и держать свой закрытый ключ
(Хорошо, отвечая на обновленный вопрос, вы сначала запускаете ssh-keygen
генерацию открытого и закрытого ключа, как объяснил Джефроми . Вы помещаете открытый ключ на сервер. Вы должны использовать фразу-пароль, если у вас нет эквивалента простого -текстовый пароль в вашем личном ключе. Но когда вы это сделаете, вам понадобится на практике, как описано ниже.)ssh-agent
Вы хотите работать ssh-agent
в фоновом режиме при входе в систему. Как только вы входите в систему, идея состоит в том, чтобы запускаться ssh-add
один раз и только один раз, чтобы дать агенту вашу фразу-пароль для декодирования вашего ключа. Затем агент просто сидит в памяти с разблокированным и загруженным ключом, готовым к использованию каждый раз, когда вы где-то работаете в ssh.
Все команды ssh-family 1 будут обращаться к агенту и автоматически смогут использовать ваш закрытый ключ.
В системах OSX (err, 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
с правильным расширением pam.