Как не спрашивать парольную фразу каждый раз, когда я нажимаю Bitbucket

Я установил свой материал ssh с помощью этого руководства , и он хорошо работал (я мог запустить hg push, не запрашивая парольную фразу). Что могло произойти между этим и сейчас, учитывая, что я все еще использую тот же домашний каталог.

$ cat .hg/hgrc 
[paths]
default = ssh://[email protected]/tshepang/bloog

$ hg push
Enter passphrase for key '/home/wena/.ssh/id_rsa': 
pushing to ssh://[email protected]/tshepang/bloog
searching for changes
...
175 голосов | спросил Tshepang 28 PMpThu, 28 Apr 2011 18:22:16 +040022Thursday 2011, 18:22:16

6 ответов


266

Вам нужно использовать агент ssh. Короткий ответ: попробуйте

$ ssh-add

перед нажатием. Поставьте свою фразу при запросе.

Если вы еще не используете агент ssh, вы получите следующее сообщение:

Could not open a connection to your authentication agent.

В этой ситуации вы можете запустить один и настроить свою среду таким образом

eval $(ssh-agent)

Затем повторите команду ssh-add.

Стоит взглянуть на справочную страницу агента ssh .

ответил jmtd 28 PMpThu, 28 Apr 2011 18:47:30 +040047Thursday 2011, 18:47:30
36

Способ решить это с помощью ssh-agent и ssh-add:

$ exec ssh-agent bash
$ ssh-add
Enter passphrase for ~/.ssh/id_rsa: 

После этого кодовая фраза сохраняется для текущего сеанса. и больше не будет запрашиваться.

ответил stefano 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 13:32:30 +0400 2011, 13:32:30
21

Я использую Keychain для управления ключами ssh. Он также доступен в Debian и, предположительно, Ubuntu с

apt-get install keychain

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

ответил Faheem Mitha 29 AMpFri, 29 Apr 2011 00:44:19 +040044Friday 2011, 00:44:19
6

Для удобства оптимальный метод представляет собой комбинацию ответов jmtd и Фахим .

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

Arch wiki рекомендует инициализировать брелок из /etc/profile.d/ или ваш профиль оболочки, например .bash_profile или .bashrc. Это имеет недостаток в том, что он связывает ваш брелок, как только вы открываете терминал.

Более гибкий подход заключается в объединении keychain с определенным сеансом tmux. Итак, в .bash_profile:

tsess=$(tmux ls 2>&1)

if [[ "${tsess%%:*}" = "secured" ]] && 
   [[ -f $HOME/.keychain/$HOSTNAME-sh ]]; then
    # start keychain
    /usr/bin/keychain -Q -q --nogui ~/.ssh/id_rsa
    . $HOME/.keychain/$HOSTNAME-sh
fi

... и тогда это всего лишь случай запуска защищенного сеанса tmux как и когда требуется (запускается из keybind):

#!/bin/bash
PID=$(pgrep tmux)
new="tmux -f $HOME/.tmux/conf new -s secured"
old="tmux attach -t secured -d"

if [[ -z "$SSH_AUTH_SOCK" ]]; then
    eval `ssh-agent`
    trap "kill $SSH_AGENT_PID" 0
fi

if [[ -z "$PID" ]]; then
    urxvtc -title "SSH" -e sh -c "${new}"
else
    urxvtc -title "SSH" -e sh -c "${old}"
fi

ssh-add

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

ответил jasonwryan 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 23:55:52 +0400 2011, 23:55:52
6

Создайте (или измените, если он существует) следующий файл ~ /.ssh /config:

Host *
    UseKeychain yes
    AddKeysToAgent yes
    IdentityFile ~/.ssh/id_rsa
ответил ness-EE 26 MarpmMon, 26 Mar 2018 13:40:47 +03002018-03-26T13:40:47+03:0001 2018, 13:40:47
0

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

$ sudo apt-get install sshpass
$ sshpass -p 'password' ssh [email protected]

Вам просто нужно добавить sshpass -p yourpassphrase перед добавлением вашей обычной команды ssh.

ответил belka 18 Maypm18 2018, 13:59:09

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132