Я пытался начать ssh-add
работать над RaspberryPi под управлением Raspbian.
Я могу начать ssh-agent
, когда я делаю это дает следующий вывод в терминал:
SSH_AUTH_SOCK=/tmp/ssh-06TcpPflMg58/agent.2806; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2807; export SSH_AGENT_PID;
echo Agent pid 2807;
Если я бегу, ps aux | grep ssh
я вижу, что он бежит.
Затем я пытаюсь запустить ssh-add
, чтобы добавить ключевую фразу, и получаю следующее:
Could not open a connection to your authentication agent.
Есть идеи?
command-line
ssh
ssh-agent
Даниэль Гровс
источник
источник
eval $(ssh-agent)
Ответы:
Ваша оболочка предназначена для оценки вывода этого шелл-кода
ssh-agent
. Запустите это вместо:Или, если вы уже запустили ssh-agent, скопируйте его и вставьте в приглашение оболочки (при условии, что вы используете оболочку типа Bourne).
ssh
Команды должны знать, как общаться с нимиssh-agent
, они знают это изSSH_AUTH_SOCK
переменной окружения.источник
ssh-agent bash
делает), но он не может обновить память отдельного процесса, выполняющего чужую команду (ваша уже запущенная оболочка).Попробуй это:
источник
ssh-agent /usr/bin/fish
,/usr/local/bin/fish
(альтернативно/usr/ports/shells/fish
). Спасибоwhereis
команде за то, что помогли мне понять это.Этот вопрос также был очень хорошо освещен в Stackoverflow .
источник
`...`
. Без них оператор split + glob вызывается на выходе.Если вы используете csh в качестве оболочки ( FreeBSD PI ), это может сработать:
Далее вам нужно всего лишь сделать что-то вроде:
источник
Вы также можете использовать следующий синтаксис:
источник
ssh-agent sh -c "ssh-add -l"
он скажет вам, что у вас нет личности.ssh-agent sh -c "ssh-add && ssh-add -l"
напечатает вашу личность.Попробуйте это: перейдите
C:\$Installation_Folder$\Git\cmd
и выполните:Он откроет команду cmd и запустит
ssh-agent
правильный путь.ssh-add ~/.ssh/id_rsa
должен тогда работать.источник
Это сбивало с толку, и у него есть 2 возможных хороших ответа, в зависимости от того, пытается ли пользователь добавить ключ ssh в Linux или в Windows (как я). Это, вероятно, не отвечает OP, но является расширением для git-bash. Я запускаю Windows и Ubuntu для разработки, и моя установка git немного отличается в каждой.
.. был хорошим ответом для Windows, но не смог указать, что вы должны были пройти через Windows Explorer, чтобы найти папку установки Git, и запустить оболочку Windows, которая откроется после завершения шага 1.
"перейти к C: \ $ Installation_Folder $ \ Git \ ЦМД»
Шаг 2: вам просто нужно дважды щелкнуть
На шаге 3 вы возвращаетесь к git-bash или к любому эмулятору терминала * nix, который вы используете, и запускаете ssh-add. Если вы использовали имя по умолчанию для открытого ключа ssh, вам не нужно добавлять имя, так как ssh-add использует это автоматически.
источник
Есть несколько способов, если вы хотите использовать идентичность с sudo, например
sudo npm install
.Долгий путь , но также дает вам root-доступ, так что вам не придется
sudo
много использовать .sudo ssh-agent bash
Это запросит ваш пароль и после запуска
ssh-agent
с привилегиями суперпользователя,cd /home/user/.ssh
Оттуда вы можете запустить
Короткий путь , только ваш пользователь (если вы не хотите много судить)
источник
export
иeval
работать так же хорошо, как root, при условии, что оболочка входа в систему root похожа на Bourne. Если оболочкой root является csh или tcsh, используйтеeval `ssh-agent -c`
root
доступ к своему ssh-агенту, выполнивsudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" npm install...
eval "$(ssh-agent)"
по приглашению оболочки bash, работающей от имени root, все будет работать. Очевидно, вам нужно будет запуститьssh
из этой оболочки или ее потомка, чтобы они наследовали переменную SSH_AUTH_SOCK env.eval "$(sudo ssh-agent)"; sudo ssh...
не будет работать, потому чтоsudo
по умолчанию не передается переменная SSH_AUTH_SOCK env.eval "$(ssh-agent)"
смотреть позже, чтобы увидеть, есть ли какая-то ошибка конфигурации. Хотя текущий способ, которым я дал это руководство, позволяет свободно контролировать, каким пользователем вы хотите быть, так как вы уже являетесь пользователем root и можете получить доступ к любому пользователю id_rsa, который находится на сервере. Так что, как только я получу, что он работает должным образом, отредактируйте мой ответ