Я использую Awesome Window Manager
Как я могу постоянно добавлять закрытые ключи с паролем?
Вдохновленный ответом здесь я добавил закрытые ключи в ~ / .ssh / config
Содержимое ~ / .ssh / config:
IdentityFile 'private key full path'
Разрешения ~ / .ssh / config: 0700
Но это не работает для меня.
Если я добавляю ключ вручную в каждом сеансе, он работает, но я ищу более элегантный способ (не в .bashrc)
РЕДАКТИРОВАТЬ :
- Использование Gnome классической (без эффектов) версии.
После добавления ключа SSH ssh-copy-if
к удаленному хосту, я получаю следующее приглашение в терминале (GNOME Terminal 3.0.1) при входе в систему:
ssh -i .ssh/Password-Protected-Key user@host
Enter passphrase for key '.ssh/Password-Protected-Key':
- Использование Awesome оконного менеджера v3.4.10. У меня уже было,
gnome-keyring-dameon
поэтому я убил другой pid и запустилgnome-keyring-daemon --start | grep SOCK
(я также добавил его в .profile) вывод (grep):
SSH_AUTH_SOCK=/tmp/keyring-2LXXXX/ssh
Я выполнил те же самые шаги, и аналогично у меня нет диалогового окна ssh-add с графическим интерфейсом.
РЕДАКТИРОВАТЬ 2 :
Я создал новый ключ, защищенный паролем, из виртуальной машины Ubuntu 11.10 на Unity, и до сих пор не могу получить запрос пароля.
РЕДАКТИРОВАТЬ 3 : Кажется, что это не может работать в Awesome оконном менеджере :( и, возможно, другие ..
источник
Ответы:
Если вы используете Unity или менеджер сеансов, который запускает gnome-keyring-daemon, вы можете просто использовать Seahorse (пароли и ключи), чтобы установить ключ, определить, для чего он нужен, установить фразу-пароль и распространить ее открытый ключ для компьютер, который вы собираетесь использовать с SSH. Нет необходимости в терминальных командах.
Вы создаете пароль:
выбрав File-> New и выберите Secure Shell Key. Нажмите Продолжить.
Введите описательное имя и выберите
Create and set up
.Вам будет предложено ввести ключевую фразу дважды (во второй раз, чтобы убедиться, что вы не ввели ее неправильно в первый раз).
Введите компьютер, для которого должен использоваться открытый ключ, и имя пользователя на том компьютере, для которого вы будете использовать ключ. Открытый ключ будет скопирован на этот другой компьютер, при необходимости запросив пароль на этом компьютере.
Теперь на
My Personal Keys
вкладке будет отображаться ключ.Предполагая, что gnome-keyring-daemon был запущен правильно, когда вы вошли в Lightdm, и снова вашим менеджером сеансов, когда вы впервые используете ключ с ssh, вам будет предложено ввести ключевую фразу. В этом диалоговом окне вы можете указать
Details
ключевую фразу, выбрать элемент управления и попросить, чтобы брелок был разблокирован, когда вы вошли в систему - автоматически предоставив этот ключ. НажмитеOKВы можете не получить такого запроса, если есть другой ключ для входа на удаленный компьютер.
После того, как это будет выполнено, на первой вкладке Seahorse
Passwords
будет отображаться «Unlock password entry» для имени ключа. Нажмите на треугольник перед « Пароли: Логин», чтобы увидеть его.источник
Создание защищенного паролем ключа SSH в сеансах и перезагрузках
Это, вероятно, то, что вы хотите: ввод ключевой фразы-пароля один раз делает ее доступной навсегда, когда вы входите в систему. Это будет работать для большинства пользователей, которые используют рабочие столы Unity или Gnome.
Когда вы подключаетесь после добавления открытого ключа к удаленному серверу, вы получаете диалог ssh-add с графическим интерфейсом:
Разверните «Детали», нажав на треугольник, и вы получите ниже. По умолчанию используется «блокировка ключей при выходе из системы», что требует ввода пароля один раз за сеанс:
Измените его на Автоматически разблокировать ... всякий раз, когда я вошел в систему , что означает, что он будет работать всякий раз, когда вы входите в сеанс - он "контролируется" вашим паролем пользователя. Это будет сохраняться через перезагрузки.
Введите ключевую фразу один раз и все - ключ аутентифицируется при первом успешном входе в среду рабочего стола.
Если вы используете AwesomeWM
Протестировано с новой установкой AwesomeWM в новом ИД пользователя
По умолчанию AwesomeWM использует
ssh-agent
:Чтобы вышеперечисленные шаги работали, вы должны использовать
gnome-keyring-daemon
в качестве демона аутентификации SSH, а не ssh-agent. Когда вы входите с помощью lightdm, запускается PAMgnome-keyring-daemon
, который пытается разблокировать ключ входа с помощью вашего пароля разблокировки, но вы должны добавить в свою конфигурацию, чтобы он продолжал работать и использовать его.Добавьте следующее в конец вашего
~/.xprofile
:Команды в
~/.xprofile
файле будут выполнены xsession перед запуском удивительного оконного менеджера и свяжут его сgnome-keyring-daemon --login
процессом, запущенным PAM через указанные выше переменные окружения.ssh user@host
, вы должны получить вышеупомянутые всплывающие окна - используйте их для декодирования ваших закрытых ключей в ~ / .ssh / и сохраните ваши личные ключи в связке ключей входа gnome-keyring.Общее решение для любого оконного менеджера / рабочего стола
это использовать
gnome-keyring-daemon
вместоssh-agent
. Для этого вам нужно работатьgnome-keyring-daemon
и иметь его инициализации и либо сделать это после того, какssh-agent
запускается или не запускаетсяssh-agent
вообще.ssh
(фактически ssh-add) решает, какой агент аутентификации вызывать, основываясь на значенииSSH_AUTH_SOCK
переменной среды, которую можно проверить, набравexport | grep SOCK
это имеет форму
SSH_AUTH_SOCK=/tmp/ssh-MMFyVlI22130/agent.22130
для ssh-agent (НЕ то, что вы хотите, чтобы иметь возможность сохранить ваш ключ)но в форме
SSH_AUTH_SOCK="/tmp/keyring-mEQB5g/ssh"
для gnome-keyring-daemon (который вы хотите)поэтому проверьте значение и проверьте
ps aux | grep keyring
, запущен ли gnome-keyring-daemon , и, если это так, инициализируйте его с результатамиgnome-keyring-daemon --start
Затем вы можете проверить связанные сохраненные идентификационные данные в консоли, набрав
ssh-add -l
- если он показывает «нет агента», то вы допустили ошибку при настройке gnome-keyring-daemon.источник
~/.ssh
, использовать их не нужноssh-add
- диалоговое окно будет появляться при первом использовании. Обратите внимание, что это работает только в Unity / Gnome - в чате я обнаружил, что OP использует AwesomeWM , где это не работает!Решением вашей проблемы является использование агента ssh. Вам просто нужно один раз разблокировать пароль вашего ключа, после чего он сохраняется в памяти агентом и используется автоматически
ssh-keygen -t dsa
ssh-copy-id
для этого)ssh-add
перед входом в удаленную систему, запросит пароль и сохранит его.ssh-agent хорошо описан в .net, например, здесь:
Еще одним преимуществом ssh-agent является то, что если вы
ssh -A user@domain.name
входите в удаленную систему с помощью этой программы, вы можете в дальнейшем использовать ssh с компьютера domain.name на третий компьютер, содержащий ваш открытый ключ, без всякого копирования вашего личного ключа на компьютер domain.name (и никогда видит ваш закрытый ключ, только одноразовый вызов / ответ).источник
ты можешь использовать
ssh-add 'filename or fullpath'
Вас попросят ввести ключевую фразу, если она есть у ключа
тогда вы можете подключиться без пароля
источник
Если вы хотите работать с закрытыми ключами, сделайте:
Затем:
скопировать
.ssh/id_rsa.pub
на место назначения машины.ssh/authorized_keys
через scpВсе сделано.
Подключиться к удаленному компьютеру без пароля:
И у нас нет запроса пароля.
источник