Каждый раз, когда я отправляю SSH на другой сервер с нашего безголового сервера Ubuntu, меня просят ввести пароль для моего файла ключей. Даже если я ранее подключился к серверу.
У вас есть идеи, почему это возможно? Это может быть что-то столь же простое, как в ssh-agent
данный момент, или что-то еще
Тот же ключ на моем рабочем столе Ubuntu Gnome работает нормально. И сервер, и рабочий стол работают под управлением Ubuntu 10.10.
ps -ef | grep '[s]sh-agent'
simon 3219 1 0 12:46 ? 00:00:00 ssh-agent
ssh-agent
работает ли :ps -ef | grep '[s]sh-agent'
Ответы:
Даже если агент включен, если определенные переменные среды не установлены, у вас нет ссылки на агента. Более того, даже если все в порядке, агент и переменные, удостоверение не отправляется автоматически агенту: это задача
ssh-askpass
, работающая только в сеансах X.Если вы используете bash, создайте файл
~/.bash_profile
со следующим содержимым:измените имя файла в
~/.ssh/id_dsa
соответствии с вашими потребностями и добавьте эту строку в~/.bash_logout
Последнее замечание: это не мешает сеансу gnome, потому что в этом случае только
~/.profile
источник, и вы можете воспользоватьсяssh-askpass
графическим интерфейсом, который запрашивает фразу-пароль и отправляет ее вssh-agent
.источник
ssh
других машин. Но это не так, когда вы используетеgit
push или pull для публичного хранилища. У вас есть идеи, как я мог бы это решить?ssh()
, вызовите ееgit()
и измените последнюю строку с/usr/bin/ssh
на/usr/bin/git
. Кроме того, добавьте последнюю строку сexport -f git
.ssh
в машину сbash_profile
файлом, который вы создали выше, он спрашивает у меня пароль ключа. По какой-то причине теперь каждый раз, когда я ssh в нем спрашивает еще до того, как я выполнилssh
илиgit
. Обратитесь к gist.github.com/942082 за подсказкой, которую я получаю при входе в систему на компьютере-нарушителе.git
взаимодействоватьssh
, и я не использую,git
поэтому я не могу попробовать. Я изменил,~/.bash_profile
чтобы включитьgit()
функцию, которую я упомянул выше, чтобы убедиться, что мое предыдущее объяснение было ясно. Также из результатов, которые вы показываете, видно, что вы модифицировали серверную машину, но все мои советы были направлены только на клиентскую машину.git
отправляю из него центральную кузницу / репозиторий, чтобы файл находился в нужном месте. Я думаю, что вы только что дали мне подсказку / пробежали мои мысли. У меня есть специальное приглашение bash, которое отображает ветку gitpwd
. Могу поспорить, что именно это вызывает запрос пароля при входе в bash, поскольку он пытается просмотреть статистику перед отображением приглашения bash!Я недавно начал использовать ssh-идент:
https://github.com/ccontavalli/ssh-ident
все, что вам нужно сделать, это добавить что-то вроде:
в вашем
.bashrc
. Кроме того, вы можетеln -s /path/to/ssh-ident ~/bin/ssh
или какой-либо другой каталог в вашем PATH до/bin
и/usr/bin
.источник
Этот вопрос имеет довольно хороший ответ в SuperUser .
Я нашел подсказку использовать Keychain довольно полезным.
источник