Как я могу постоянно сохранить защищенный паролем ключ SSH?

Я использую Потрясающий Менеджер окон

Как я могу постоянно добавить закрытые ключи с паролем?

Вдохновленный ответом здесь я добавил закрытые ключи в ~/.ssh/config

Содержание ~/.ssh/config:

IdentityFile 'private key full path'

Полномочия ~/.ssh/config: 0700

Но это не работает на меня.

Если я вручную добавляю ключ в каждой сессии, он работает, но я ищу более изящный путь (не в .bashrc)

Править:

  • Используя классика Gnome (никакие эффекты) версия.

После добавления ключа SSH с ssh-copy-if к удаленному хосту я получаю следующую подсказку в терминале (Терминал 3.0.1 GNOME), когда я вхожу в систему:

ssh -i .ssh/Password-Protected-Key user@host
Enter passphrase for key '.ssh/Password-Protected-Key':
  • Используя Потрясающий менеджер окон v3.4.10. Я уже имел gnome-keyring-dameon таким образом, я уничтожил другой pid и работал gnome-keyring-daemon --start | grep SOCK (Я также добавил его в .profile), (grep) вывод:

SSH_AUTH_SOCK=/tmp/keyring-2LXXXX/ssh

Я выполнил те же самые шаги, и аналогично у меня нет GUI, ssh-добавляет диалоговое окно.

РЕДАКТИРОВАНИЕ 2:

Я создал новый пароль защищенный ключ из виртуальной машины Ubuntu 11.10 на единице, и я все еще не могу получить подсказку пароля.

РЕДАКТИРОВАНИЕ 3: кажется, что это не может работать в Потрясающем менеджере окон и возможно другом..

9
задан 15 November 2017 в 16:43

5 ответов

Если вы используете Unity или менеджер сеансов, который запускает gnome-keyring-daemon, вы можете просто использовать Seahorse (пароли и ключи), чтобы установить ключ, определить, для чего он нужен, установить фразу-пароль и распространить ее публично. ключ к компьютеру, который вы собираетесь использовать с SSH. Нет необходимости в терминальных командах.

Вы создаете пароль:

  1. , выбирая File-> New и выбирая Secure Shell Key. Нажмите Продолжить.

  2. Введите описательное имя и выберите Create and set up.

  3. Вам будет предложено ввести ключевую фразу дважды (во второй раз, чтобы убедиться, что вы не вводили ее неправильно в первый раз.

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

Теперь на вкладке My Personal Keys будет отображаться ключ.

Предполагается, что gnome-keyring-daemon был запущен правильно, когда вы вошли в Lightdm, и снова вашим менеджером сеансов, когда вы впервые используете введите ssh, и вам будет предложено ввести ключевую фразу. В этом диалоговом окне вы можете указать ключевую фразу, выбрать элемент управления Details и попросить разблокировать набор ключей при каждом входе в систему - автоматически предоставив эту клавишу. Нажмите OK

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

После этого h как только будет выполнено, первая вкладка Seahorse Passwords выведет список «Unlock password entry» для имени ключа. Нажмите на треугольник перед « Пароли: Логин», чтобы увидеть его.

0
ответ дан 15 November 2017 в 16:43

вы можете использовать

ssh-add 'filename or fullpath'

вас попросят ввести ключевую фразу, если у ключа есть один

, то вы можете подключиться без пароля

0
ответ дан 15 November 2017 в 16:43

Если вы хотите работать с закрытыми ключами, выполните:

ssh-keygen -t rsa -N ''

Затем:

скопируйте .ssh/id_rsa.pub в пункт назначения машины в .ssh/authorized_keys через scp

scp .ssh/id_rsa.pub user@remote_machine:~/.ssh/authorized_keys
[ 118] Все сделано.

Подключение к удаленной машине без пароля:

ssh user@remote_machine

И у нас нет запроса пароля.

0
ответ дан 15 November 2017 в 16:43

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

  • Генерируйте частную/с открытым ключом пару с ssh-keygen -t dsa
  • Скопируйте открытый ключ в удаленную машину, обычно это - ~/.ssh/authorized_keys (использование ssh-copy-id для этого)
  • Выполненный ssh-add перед входом в систему в к удаленной системе это попросит Ваш пароль и сохранит его
  • Войдите в удаленную систему, никакой необходимый пароль

ssh-агент описан хорошо на .NET, например, здесь:

Другое преимущество ssh-агента - это, если Вы входите в удаленную систему с ssh -A user@domain.name Вы можете далее ssh с domain.name компьютера на третий компьютер, содержащий Ваш открытый ключ без каждого копирования Вас закрытый ключ к domain.name компьютеру (и это никогда не видит Вашего закрытого ключа, только одноразовая проблема/ответ).

2
ответ дан 15 November 2017 в 16:43

Создание защищенного паролем ключа SSH сохраниться через сессии и перезагрузки

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

  • Когда Вы соединитесь после добавления открытого ключа к удаленному серверу, Вы доберетесь, GUI ssh-добавляют диалоговое окно:

    enter image description here

  • Разверните "Детали" путем нажатия на треугольник, и Вы доберетесь ниже. Значение по умолчанию является "брелоком для ключей блокировки, когда я выхожу из системы", который требует, чтобы Вы ввели пароль однажды на сессию:

    enter image description here

  • Измените его для автоматического разблокирования... каждый раз, когда я зарегистрирован, что означает, что это будет работать каждый раз, когда Вы вошли в систему своей сессии - этим "управляет" Ваш пароль пользователя. Это сохранится через перезагрузки.

    enter image description here

  • Введите ключевой пароль однажды и вот именно - ключ аутентифицируется через начальный успешный вход в систему Вашей настольной среды.


Если Вы используете AwesomeWM

Протестированный с новой установкой AwesomeWM в новом идентификаторе пользователя

  • По умолчанию, использование AwesomeWM ssh-agent:

    $ export | grep SSH
    declare -x SSH_AGENT_PID="5479"
    declare -x SSH_AUTH_SOCK="/tmp/ssh-fWCKNnPq5440/agent.5440"
    
  • Чтобы заставить вышеупомянутые шаги работать, необходимо использовать gnome-keyring-daemon как демон аутентификации SSH, не ssh-агент. При входе в систему в использование lightdm PAM запускается gnome-keyring-daemon это попытается разблокировать ключ входа в систему с Вашим разблокировать пароль, но необходимо добавить к Вам конфигурацию, чтобы поддерживать его в рабочем состоянии и использовать его.

  • Добавьте следующее в конец Вашего ~/.xprofile:

      #!/bin/bash
      eval $(gnome-keyring-daemon --start)
      export SSH_AUTH_SOCK
      export GNOME_KEYRING_PID
      export GNOME_KEYRING_CONTROL
    

Команды в ~/.xprofile файл будет выполняться xsession прежде, чем запустить потрясающий менеджер окон и свяжет его с gnome-keyring-daemon --login процесс, запущенный PAM через вышеупомянутые переменные среды.

  • Выйдите из системы назад к lightdm и войдите в, и теперь когда Вы сделаете ssh user@host, необходимо добраться, вышеупомянутые всплывающие окна - используют их, чтобы декодировать закрытые ключи в ~/.ssh/и сохранить закрытые ключи к брелоку для ключей входа в систему брелока для ключей гнома.

Общее решение для любого менеджера окон / настольная среда

  • должен использовать gnome-keyring-daemon вместо ssh-agent. Для этого необходимо работать gnome-keyring-daemon и инициализируйте его, и любой делает это после ssh-agent запускается или не запускаются ssh-agent вообще.

  • ssh (на самом деле ssh-добавьте), решает который агент аутентификации звонить на основе значения SSH_AUTH_SOCK переменная среды, которая может быть проверена путем ввода export | grep SOCK

  • это имеет форму SSH_AUTH_SOCK=/tmp/ssh-MMFyVlI22130/agent.22130 для ssh-агента (НЕ, что Вы хотите смочь сохранить свой ключ),

  • но формы SSH_AUTH_SOCK="/tmp/keyring-mEQB5g/ssh" для гнома-демона брелока для ключей (который Вы хотите),

  • так проверьте значение и сверьтесь ps aux | grep keyring тот гном-демон брелока для ключей работает, и если так, инициализируйте его с результатами gnome-keyring-daemon --start

  • можно затем проверить связанные сохраненные идентификационные данные в консоль путем ввода ssh-add -l - если это не показывает "агента", затем Вы сделали ошибку при конфигурировании гнома-демона брелока для ключей.

19
ответ дан 15 November 2017 в 16:43

Другие вопросы по тегам:

Похожие вопросы: