Вопрос Введите парольную фразу SSH


Перед обновлением

Когда я бежал git clone git@... (используя ssh) один раз за перезапуск компьютера открывается диалоговое окно с текстовым полем для ввода моей кодовой фразы SSH и подтверждено с помощью OK. Тогда кодовая фраза больше не требовалась до следующего запуска моей системы.

После обновления до 13.10

После обновления до Ubuntu 13.10 это окно больше не появляется, но появляется сообщение в терминале:

Enter passphrase for key '/home/username/.ssh/id_rsa': 

... каждый раз при клонировании git-репозитория это появляется.

Как я могу это исправить? Я хочу ввести кодовую фразу только один раз.


105
2017-10-20 06:32


происхождения


Я думаю, вы должны использовать ssh-add для этого. Ты это пробовал? - devius
Я пытался ssh-agent bash + ssh-add, Это работает всего несколько минут. - Ionică Bizău
У меня такая же проблема. Я думаю, что это может быть конфликт между ssh-агентом OpenSSH и демоном Gnome Keyring. - devius
Связанная ошибка: bugs.launchpad.net/ubuntu/+source/libpam-ssh/+bug/1247169 - devius
Добавить AddKeysToAgent yes для .ssh / config работает для меня. - xslittlegrass


ответы:


Обновление: похоже, ошибка от 13.10:

https://bugs.launchpad.net/ubuntu/+source/libpam-ssh/+bug/1247169


В любом случае, для меня были решены следующие команды:

Как исправить

Я исправил это, введя следующие команды:

$ ssh-agent bash

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

А потом:

$ ssh-add /home/username/.ssh/id_rsa
Enter passphrase for /home/username/.ssh/id_rsa: 
Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)

...где username это ваше имя пользователя. Вы можете сделать то же самое, используя $USER переменная:

$ ssh-add /home/$USER/.ssh/id_rsa

В качестве альтернативы просто используйте ~ для вашего домашнего каталога.

$ ssh-add ~/.ssh/id_rsa

И проблема была исправлена.


120
2017-10-20 06:41



Это не решает проблему вообще. Он только добавляет идентификатор к агенту, пока вы не выйдете из терминала. Если вы открываете новый терминал, вы должны ssh-add еще раз. - devius
@devius Да, кажется, ошибка. Но, вышеприведенные команды исправили мою проблему ... - Ionică Bizău
Поэтому, чтобы уточнить: с помощью этого «исправления» вам не нужно будет снова вводить парольную фразу в этом терминале. В тот момент, когда вы откроете новый терминал, вам придется снова ввести кодовую фразу. - harijay
Я пытался $ ssh-add /home/username/.ssh/id_rsa (без ssh-agent bash), и это сработало для меня даже после открытия терминала. Но полным решением для меня был этот stackoverflow.com/a/4246809/532252, Все нормально, даже после перезагрузки машины. - kishie
Я просто набрал ssh-add в терминале. Нет необходимости переключаться на bash ssh-agent или указывать файл id_rsa - henry74


Этот атласский документ исправил проблему для меня на Ubuntu 14.04 Server Edition:

Просто добавьте эти значения в свои .bashrc файл:

SSH_ENV=$HOME/.ssh/environment

# start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."
    # spawn ssh-agent
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
    echo succeeded
    chmod 600 "${SSH_ENV}"
    . "${SSH_ENV}" > /dev/null
    /usr/bin/ssh-add
}

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi

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


27
2018-06-10 09:07



Кажется, это работает на других дистрибутивах, например, я просто успешно использовал этот ответ на Sabayon Linux. - BH2017
Благодаря! Это решение работало для меня в системе ubuntu, где gnome-keyring-daemon не работал из-за проблем с dbus-daemon. В частности, я получал эти ошибки »** Сообщение: не удалось подключиться к шине сеанса dbus: невозможно выполнить автозапуск dbus-демона без $ DISPLAY для X11» и после установки переменной среды отображения я получил «** Сообщение: cann 't подключиться к шине сеанса dbus: // bin / dbus-запуск прерывается ненормально со следующей ошибкой: Ошибка автоопределения: неудачная инициализация X11. " - user207863
Это требует большего количества оборотов, устраняет проблему с виртуализированным Ubuntu 16.04. - Niels Keurentjes
Это исправляет проблему для меня и в Bash для Windows. Я попытался запустить Bash несколько раз, и он вспомнил парольную фразу. Еще не пробовал перезапустить. - Amr
попробовав все другие решения, это сработало для меня. Это должно быть решением для ОП - João Pimentel Ferreira


0) Короткий ответ

Добавьте в свой .ssh/config одна строка в начале:

AddKeysToAgent yes

и запустите git / ssh / ... Если этого недостаточно, проверьте свою версию ssh и убедитесь, что ssh-agent загружен этими инструкциями:

1) Проверьте версию openssh

Во-первых, проверьте, что ваша версия ssh, это должно быть больше, чем 7,2:

ssh -V

2) Отредактируйте файл конфигурации

Если это так, просто добавьте в свой .ssh/config одна строка в начале:

AddKeysToAgent yes

3) Проверьте, открыт ли ssh-agent

Обычно дистрибутивы автоматически загружают ssh-agent. Чтобы проверить это, запустите

ps aux | grep -v grep | grep ssh-agent

Если вы не видите ни одной строки, содержащей ее, вам необходимо загрузить ее, запустив:

eval $(ssh-agent)

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


23
2017-11-25 18:32



AddKeysToAgent yes является каноническим ответом после 2016 года - и в точку о чем говорят большинство современных пользователей. Это в середине 2017 года. Ubuntu> = 16,04 (Xenial Xerus) теперь является разумным предположением. Большинство установок OpenSSH в дикой природе теперь поддерживают эту опцию. Ad-hoc shell clludges, которые поддерживаются каждым другим ответом на этот вопрос, так ... passé, </sigh> - Cecil Curry


Обходной путь для эта ошибка заключается в следующем: ~/.bashrc

eval `gnome-keyring-daemon --start`

20
2018-02-28 20:52



Разве гнома не может быть частью вашей сессии? - Pavel Šimerda
Если вы говорите о «нужно», тогда этот вопрос не должен быть здесь на первом месте, если все это прекрасно - Anwar
Не уверен, что это принадлежит .bashrc, Похоже, вы должны добавить его в какой-нибудь файл профиля DE - Dmitry Ginzburg


Пользователи раковина может использовать это скрипт делать то же самое.

# content has to be in .config/fish/config.fish
# if it does not exist, create the file
setenv SSH_ENV $HOME/.ssh/environment

function start_agent                                                                                                                                                                    
    echo "Initializing new SSH agent ..."
    ssh-agent -c | sed 's/^echo/#echo/' > $SSH_ENV
    echo "succeeded"
    chmod 600 $SSH_ENV 
    . $SSH_ENV > /dev/null
    ssh-add
end

function test_identities                                                                                                                                                                
    ssh-add -l | grep "The agent has no identities" > /dev/null
    if [ $status -eq 0 ]
        ssh-add
        if [ $status -eq 2 ]
            start_agent
        end
    end
end

if [ -n "$SSH_AGENT_PID" ] 
    ps -ef | grep $SSH_AGENT_PID | grep ssh-agent > /dev/null
    if [ $status -eq 0 ]
        test_identities
    end  
else
    if [ -f $SSH_ENV ]
        . $SSH_ENV > /dev/null
    end  
    ps -ef | grep $SSH_AGENT_PID | grep -v grep | grep ssh-agent > /dev/null
    if [ $status -eq 0 ]
        test_identities
    else 
        start_agent
    end  
end

3
2017-09-07 11:53





Я использую это:

vim ~/.profile

eval `/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg`
export SSH_AUTH_SOCK
export GPG_AGENT_INFO

0
2017-10-07 09:00





Если вы используете файл azure .ppk

Просто преобразуйте его в pem и добавьте разрешение 400 с простыми шагами:

sudo apt-get install putty
puttygen <path_to_key>/keyname.ppk -O private-openssh -o <path>/aws_key.pem
sudo chmod 400 <path>/aws_key.pem
ssh -vi aws_key.pem ubuntu@<ip_address>

0
2018-05-25 06:49