Что такое переадресация агента SSH и как вы его используете? – CloudSavvy IT

Переадресация агента SSH
Funtap / Shutterstock

Переадресация агента SSH позволяет вам использовать удаленный локальный ключ SSH удаленно, не беспокоясь о том, чтобы оставлять конфиденциальные данные на сервере, с которым вы работаете. Он встроен в sshи прост в настройке и использовании.

Что такое агент SSH?

Ваш открытый SSH-ключ похож на ваше имя пользователя или личность, и вы можете поделиться им со всеми. Ваш личный ключ SSH похож на пароль и сохраняется локально на вашем компьютере. Но это похоже на хранение ваших паролей на заметке – любой может их просмотреть, если у них есть к нему доступ. Таким образом, для безопасности SSH попросит вас ввести ключевую фразу при генерации ключей (надеюсь, вы не пропустили этот шаг) и использует эту кодовую фразу для шифрования и дешифрования вашего закрытого ключа.

Тем не менее, это означает, что вам придется вводить парольную фразу каждый раз, когда вам нужно использовать свой закрытый ключ, что будет раздражать. Чтобы управлять этим, большинство реализаций SSH будет использовать агент, который хранит ваш расшифрованный ключ в памяти. Это означает, что вам нужно будет разблокировать его только один раз, и он будет сохраняться до перезапуска, позволяя безопасно входить на серверы без запроса пароля.

Что такое переадресация агента SSH?

Агент SSH экспедирование это как идти еще один слой глубже. Например, представьте, что вы подключаетесь к удаленному серверу и хотите git pull некоторый код, который вы храните на Github. Вы хотите использовать SSH-аутентификацию для Github, но вам не нужны ваши личные ключи на этом удаленном сервере, только на вашем компьютере.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Чтобы решить эту проблему, вы можете открыть свой локальный агент SSH на удаленном сервере, позволяя ему действовать как вы, пока вы подключены. Это не отправляет ваши личные ключи через Интернет, даже если они зашифрованы; он просто позволяет удаленному серверу получить доступ к вашему локальному агенту SSH и подтвердить вашу личность.

Это работает так: вы просите свой удаленный сервер извлечь некоторый код из Github, а Github говорит «кто вы?» на сервер. Обычно сервер справляется со своим собственным id_rsa файлы для ответа, но вместо этого он перенаправит вопрос на ваш локальный компьютер. Ваш локальный компьютер отвечает на вопрос и отправляет ответ (который не включает ваш закрытый ключ) на сервер, который пересылает его обратно в Github. Github не заботится о том, что ваш локальный компьютер ответил на вопрос, он просто видит, что на него ответили, и позволяет вам подключиться.

Как включить переадресацию агента SSH

На Mac и Linux переадресация агента SSH встроена в sshи ssh-agent Процесс запускается автоматически. Все, что вам нужно сделать, это убедиться, что ваши ключи добавлены в ssh-agent и настроить ssh использовать пересылку.

Добавить ключи в ssh-agent

Вы можете использовать утилиту ssh-add добавить ключи к вашему местному агенту. Предполагая, что ваш закрытый ключ хранится в id_rsa, Вы можете запустить:

ssh-add ~/.ssh/id_rsa

Вы также можете вручную вставить ключ вместо того, чтобы использовать id_rsa, Убедитесь, что ключ добавлен правильно с помощью:

ssh-add -L

Если это так, он должен выплюнуть ваш ключ.

Добавить ключи на macOS

В macOS вместо этого вам нужно будет выполнить:

ssh-add -K ~/.ssh/id_rsa

-K flag будет хранить ключ в связке ключей MacOS, который необходим для того, чтобы он запомнил ваши ключи при перезагрузке.

Разрешить пересылку в конфигурации вашего клиента

Откройте свой ~/.ssh/config файл на локальном компьютере или создайте новый, если он пуст. Мы установим новое правило, чтобы убедиться, что переадресация агента включена для домена этого сервера:

Host example
  ForwardAgent yes

Вы должны заменить example с вашими серверами доменное имя или IP-адрес. Вы можете использовать подстановочный знак * для хоста, но тогда вы будете перенаправлять доступ к своим закрытым ключам на каждый сервер, к которому вы подключаетесь, что, вероятно, не то, что вам нужно.

В зависимости от вашей операционной системы, вы также можете иметь конфигурационные файлы на /etc/ssh/ssh_config для macOS или /etc/ssh_config для Ubuntu. Эти файлы могут переопределить файл конфигурации пользователя в ~/.ssh/config, поэтому убедитесь, что ничего не противоречит. Линии, начинающиеся с # закомментированы, и не имеют никакого эффекта.

Вы также можете вручную включить переадресацию агента для любого домена, используя ssh -A user@host, который будет обходить все конфигурационные файлы. Если вы хотите простой способ переадресации, не касаясь конфигурации, вы можете добавить alias ssh="ssh -A" к вашим настройкам bash, но это то же самое, что и использование хоста с подстановочными знаками, поэтому мы не рекомендуем его ни для чего, связанного с безопасностью.

Тест SSH Forwarding

Если у вас нет двух серверов под рукой, самый простой способ проверить, работает ли переадресация SSH, – это добавить ваш открытый ключ с локального компьютера на ваш Github профиль и попробуйте SSH с удаленного сервера:

ssh git@github.com

Если это сработало, вы должны увидеть свое имя пользователя, и вы должны иметь возможность выдвигать и извлекать код из репозитория, даже не помещая закрытые ключи на сервер.

Настройка пересылки SSH для клиентов Windows

Поскольку Windows не является операционной системой Unix, настройка будет зависеть от того, насколько точно вы работаете ssh на первом месте.

Если вы используете Подсистема Linux для Windows, который позволяет запускать bash в Windows, установка будет такой же, как в Linux или macOS, поскольку он полностью виртуализирует дистрибутив Linux для запуска командной строки.

Если вы используете Git Bash, установка такая же, как в Linux, но вам нужно будет запустить ее вручную ssh-agent когда вы запускаете оболочку, что вы можете сделать с скрипт запуска в .bashrc,

Если вы используете PuTTY, настройка довольно проста. В конфигурации перейдите в Connection> SSH> Auth и включите «Разрешить переадресацию агента».

Вы также можете добавить свой файл закрытого ключа из той же панели. PuTTY будет обрабатывать SSH-агент для вас, поэтому вам не придется возиться с какими-либо конфигурационными файлами.

Что делать, если переадресация SSH не работает

Убедитесь, что у вас действительно есть ключи SSH; если вы этого не сделаете, вы можете запустить ssh-keygen, который поместит ваш закрытый ключ в ~/.ssh/id_rsa и ваш открытый ключ в ~/.ssh/id_rsa.pub,

Убедитесь, что ваши ключи SSH работают правильно с обычной аутентификацией, и добавьте их в ssh-agent, Вы можете добавить ключи с ssh-add,

ssh-agent Процесс также должен быть запущен. В macOS и Linux он должен запуститься автоматически, но вы можете убедиться, что он работает с:

echo "$SSH_AUTH_SOCK"

Если он настроен правильно, вы должны увидеть Listeners сокет вернулся.

Убедитесь, что ваши конфигурационные файлы настроены правильно, чтобы включить ForwardAgent yesи убедитесь, что другие конфигурационные файлы не перезаписывают это поведение. Чтобы проверить, какие файлы конфигурации использует SSH, вы можете запустить ssh в подробном режиме:

ssh -v git@github.com

Какой должен отображать, какие файлы конфигурации используются. Файлы, отображаемые позже в этом списке, имеют приоритет над более ранними файлами.

И, конечно, параметры командной строки переопределяют файлы конфигурации. Если переадресация агента не работает с ssh -A, и ваши ключи правильно настроены в вашем агенте, тогда что-то еще не так, и вам нужно будет проверить соединение с серверами в цепочке.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *