Попробуйте 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.