Я хочу использовать несколько закрытых ключей для подключения к разным серверам или различным частям одного и того же сервера (я использую системное администрирование сервера, администрирование Git и обычное использование Git на одном и том же сервере). Я попытался просто сложить ключи в id_rsa
файлах безрезультатно.
Видимо, простой способ сделать это - использовать команду
ssh -i <key location> login@server.example.com
Это довольно громоздко.
Любые предложения о том, как сделать это немного проще?
Ответы:
Из моего
.ssh/config
:И так далее.
источник
IdentityFile
записей для одного и того жеHost
, которые затем пробуются по порядку при подключении.IdentitiesOnly yes
для предотвращения ~ / .ssh / id_rsa или любых других идентификаторов. (Это было первоначально редактирование)Вы можете указать ssh попробовать несколько ключей подряд при подключении. Вот как:
Таким образом, вам не нужно указывать, какой ключ работает с каким сервером. Он просто будет использовать первый рабочий ключ.
Кроме того, вы могли бы ввести фразу-пароль, только если данный сервер готов принять ключ. Как видно выше, ssh не пытался запрашивать пароль,
.ssh/id_rsa
даже если он у него был.Конечно, он не превосходит конфигурацию для каждого сервера, как в других ответах, но по крайней мере вам не нужно будет добавлять конфигурацию для всех и каждого сервера, к которому вы подключаетесь!
источник
Ответ от Рэндал Шварц почти помог мне весь путь. У меня другое имя пользователя на сервере, поэтому мне пришлось добавить ключевое слово User в мой файл:
Теперь вы можете подключиться, используя friendly-name:
Другие ключевые слова можно найти на странице справки OpenSSH . ПРИМЕЧАНИЕ. Некоторые из перечисленных ключевых слов уже могут присутствовать в вашем файле / etc / ssh / ssh_config .
источник
Предыдущие ответы правильно объяснили способ создания файла конфигурации для управления несколькими ключами SSH. Я думаю, что важная вещь, которую также необходимо объяснить, - это замена имени хоста псевдонимом при клонировании репозитория .
Предположим, имя пользователя вашей учетной записи GitHub - abc1234 . И предположим, что ваша личная учетная запись GitHub называется jack1234
И предположим, что вы создали два ключа RSA, а именно id_rsa_company и id_rsa_personal . Итак, ваш файл конфигурации будет выглядеть так:
Теперь, когда вы клонируете репозиторий (с именем demo) из учетной записи компании GitHub, URL-адрес репозитория будет выглядеть примерно так:
Теперь, делая это
git clone
, вы должны изменить вышеуказанный URL хранилища следующим образом:Обратите внимание, что теперь github.com заменяется псевдонимом «company», как мы определили в файле конфигурации.
Аналогично, вы должны изменить клонированный URL-адрес хранилища в личной учетной записи в зависимости от псевдонима, указанного в файле конфигурации.
источник
Убедитесь, что вы проверили это перед добавлением с:
Если у вас есть проблемы с ошибками, иногда помогает изменение безопасности файла:
источник
Сгенерируйте ключ SSH:
Создайте еще один ключ SSH :
Теперь в каталоге должно быть два открытых ключа ( id_rsa.pub , accountB.pub )
~/.ssh/
.Создайте файл конфигурации
~/.ssh/config
со следующим содержимым:Клон со
default
счета.Клон с
accountB
учёта.Смотрите больше здесь
источник
Я бы согласился с Туомасом об использовании ssh-agent. Я также хотел добавить второй закрытый ключ для работы, и этот урок работал для меня как очарование.
Шаги, как показано ниже:
$ ssh-agent bash
$ ssh-add /path.to/private/key
напримерssh-add ~/.ssh/id_rsa
$ ssh-add -l
$ssh -v <host url>
например,ssh -v git@assembla.com
источник
ssh-agent
годами, я недавно переключился на использование Gnomegnome-keyring
в моемi3
wm. Причина проста: менеджер ключей Gnome автоматически обрабатывает добавление и удаление ключей ssh без необходимости помнить об этомssh-add
. Кроме того, предоставив мне один пароль для их разблокировки (и тайм-аут на указанное время, для безопасности). Каждому свое. Так как я использую настройки gnome в Arch, он был подключен к моей настройке. Если вы анти-гном, игнорируйте этот комментарий.Я столкнулся с этой проблемой некоторое время назад, когда у меня было две учетные записи Bitbucket и мне нужно было хранить отдельные ключи SSH для обеих. Это то, что сработало для меня.
Я создал две отдельные конфигурации ssh следующим образом.
Теперь, когда мне пришлось клонировать репозиторий из моей рабочей учетной записи - команда была следующей.
Мне пришлось изменить эту команду, чтобы:
Точно так же команду клона из моего личного аккаунта пришлось изменить на
Перейдите по этой ссылке для получения дополнительной информации.
источник
Используйте ssh-agent для ваших ключей.
источник
Теперь, с последней версией Git, мы можем указать sshCommand в конфигурационном файле Git для репозитория:
источник
Вы можете создать файл конфигурации с именем
config
в вашей~/.ssh
папке. Может содержать:Это позволит вам подключаться к таким машинам
источник
ВАЖНО: Вы должны запустить ssh-agent
Вы должны запустить ssh-agent (если он еще не запущен) перед использованием ssh-add следующим образом:
Обратите внимание, что команда eval запускает агент в Git Bash в Windows. Другие среды могут использовать вариант для запуска агента SSH.
источник
На Ubuntu 18.04 (Bionic Beaver) делать нечего.
После успешного создания второго ключа SSH система попытается найти соответствующий ключ SSH для каждого соединения.
Просто чтобы прояснить, вы можете создать новый ключ с помощью этих команд:
источник
Несколько пар ключей на GitHub
1.0 SSH файл конфигурации
1.1 Создать ~ / .ssh / config
1.2 chmod 600 ~ / .ssh / config ( должен )
1.3 Введите в файл следующее:
Случай A: Свежий новый клон Git
Используйте эту команду для Git clone:
Примечание: Если вы хотите изменить имя хоста «pizza» в .ssh / config в будущем, перейдите в клонированную папку Git, отредактируйте строку URL файла .git / config (см. Пример B)
Случай B: уже есть папка Git clone
2.1 Перейдите в клонированную папку, а затем перейдите в папку .git.
2.2 Редактировать файл конфигурации
2.3 Обновите URL со * старого на новый :
источник
Для меня единственным рабочим решением было просто добавить это в файл
~/.ssh/config
:your_ssh_key
без каких-либо расширений. Не используйте.pub
.источник
На CentOS 6.5 с запущенными OpenSSH_5.3p1 и OpenSSL 1.0.1e-fips я решил проблему, переименовав свои ключевые файлы, чтобы ни у одного из них не было имени по умолчанию.
Мой каталог .ssh содержит id_rsa_foo и id_rsa_bar, но не id_rsa и т. Д.
источник
-i
опции может привести к чему-то вродеno such identity: /home/embo/.ssh/id_rsa: No such file or directory
.Как уже упоминалось на странице блога Atlassian , создайте файл конфигурации в папке .ssh , включая следующий текст:
Затем вы можете просто оформить заказ с суффиксным доменом, а в рамках проектов вы можете настроить имена авторов и т. Д. Локально.
источник
Вот решение, которое я использовал, вдохновленное ответом Саджиб-хана . Конфигурация по умолчанию не установлена; это мой личный кабинет на GitLab а другой указанный - мой аккаунт компании. Вот что я сделал:
Сгенерируйте ключ SSH
Изменить конфигурацию SSH
Удалить кэшированные ключи SSH
Попробуй это!
Используй это!
Корпоративный аккаунт
Личная / учетная запись по умолчанию
Вот источник, который я использовал.
источник
Мне нравится подход, чтобы установить следующее в файле ~ / .ssh / config:
Затем в своем репозитории вы можете создать
.env
файл, который будет содержатьssh
команду для использования:Если затем вы используете, например, dotenv, переменная окружения среды экспортируется автоматически, и все равно, вы можете указать ключ, который вы хотите для каждого проекта / каталога. Кодовая фраза запрашивается только один раз, поскольку она добавляется в цепочку для ключей.
Это решение прекрасно работает с Git и предназначено для работы на Mac (благодаря
UseKeychain
).источник
Вы можете попробовать этот пакет sshmulti npm для поддержки нескольких ключей SSH.
источник