Не удается открыть ssh / авторизованные ключи пользователя

Я знаю, что это может быть тривиальным для некоторых из вас.

Я не эксперт по linux, и я пытаюсь поиграть с git. Для этого я хотел попытаться добавить свой открытый SSH-ключ в ~/.ssh/authorized_keys моего пользователя git.

проблема в том, что при входе с putty на мой сервер с пользователем git я не могу получить доступ к файлу с именем ~/.ssh/authorized_keys.

поэтому я попытался сделать это с root, может быть, это решение, но я думал, что есть один authorized_keys для каждого пользователя.

Я вижу авторизованный ключ, но я не хочу все испортить, поэтому я хотел бы быть ясным в этом. Есть ли способ использовать мою учетную запись пользователя git и изменить ssh/authorized_keys?

Спасибо большое!

4 ответов


звучит так, как будто вы почти там! Я не уверен, что именно вы сделали и не сделали, поэтому я объясню весь процесс.

во-первых, я предполагаю (потому что вы используете шпатлевку), что ваш компьютер работает под управлением Windows? Если это так, сначала вам нужно установить Git для Windows, который вы можете скачать с официальный сайт Git. Загрузите его и установите, приняв варианты по умолчанию в установщике.

это оставит вас с пунктом в ваше меню "Пуск" называется Git Bash. Вы будете использовать это для выполнения того, что будет дальше. (На самом деле вам не нужен сам Git, но установщик Git для Windows добавляет некоторые дополнительные инструменты, такие как ssh-keygen что вам нужно.)

если ваш компьютер на самом деле работает под управлением Linux или Mac OS X, а не Windows, то у вас уже есть необходимые инструменты. Вы можете следовать тем же инструкциям, но вместо использования Git Bash для ввода команд используйте терминал окно.

С этого момента я буду просто ссылаться на ввод вещей"в терминале". Если вы используете Windows, введите эти вещи в окне Git Bash.

Шаг 1: на вашем собственном компьютере проверьте наличие пары ключей SSH

в терминале, типа:

ls ~/.ssh/id_rsa*

в этом списке должно быть два файла: id_rsa и id_rsa.паб. Если они существуют, перейдите к Шагу 2. Если нет, введите:

ssh-keygen

затем следуйте инструкциям, чтобы создать их. Тогда запустите ls еще раз подтвердите, что они там.

Шаг 2: загрузите свой открытый SSH-ключ на сервер

открытый ключ называется id_rsa.паб. Вы можете загрузить его на сервер, используя :

scp ~/.ssh/id_rsa.pub git@my-server.com

введите пароль пользователя git при появлении запроса.

Шаг 3: Добавьте свой ключ в файл authorized_keys пользователя git

первый SSH на сервер в качестве пользователя git:

ssh git@my-server.com

введите пароль пользователя git снова. После входа в систему как пользователь git введите следующее:

mkdir -p ~/.ssh/

это создаст .каталог ssh, если он еще не существует. Если она существует, то ничего не делает.

теперь добавьте ключ в файл authorized_keys:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

это займет содержимое id_rsa.pub, файл, который вы только что загрузили, и добавьте их в конец файла authorized_keys. Если authorized_keys не существует, эта команда будет сначала создайте его.

(Примечание: будьте очень осторожны, чтобы ввести две правые угловые скобки (>>) в командной строке. Две прямоугольные скобки означают добавить содержимое id_rsa.Pub в authorized_keys файл. Если вы используете только один, это означает заменить содержимое authorized_keys с содержимым id_rsa.паб, и ты не хочешь этого делать.)

вы можете проверить, что это сработало, запустив cat на каждом файле и убедившись, что что вы можете увидеть содержимое id_rsa.паб в конце authorized_keys:

cat ~/id_rsa.pub
cat ~/.ssh/authorized_keys

как только вы это подтвердите, удалите id_rsa.паб; он вам больше не понадобится.

rm ~/.ssh/id_rsa.pub

наконец, установите разрешения на .каталог и СШ .ssh / authorized_keys, чтобы только владелец этих файлов (пользователь git) мог получить к ним доступ. В противном случае SSH-сервер откажется их использовать. Итак:

chmod 700 ~/.ssh
chmod 400 ~/.ssh/authorized_keys

это делает каталог доступным только для пользователя git и файла внутри он доступен только пользователю git.

вы должны найти, что вы теперь хорошо идти!


The .каталог ssh и файл authorized_keys по умолчанию не существуют, их необходимо создать. Убедитесь, что каталог имеет разрешения 0700, а файлы в нем имеют разрешения 0600, или ssh не будет работать.


У меня была такая же проблема, вот что установил его для меня:

chown -R NEW_USER /home/NEW_USER
chown -R NEW_USER /opt/git

оказывается, у меня был неправильный владелец файла, который я, вероятно, испортил, когда создавал пользователя. Конечно, мой новый пользователь был "git".

способ, которым это испортило SSH-соединение, состоял в том, что пользователь " git "не мог получить доступ"~/.ssh / authorized_keys'.

надеюсь, что это поможет кому-то еще.


эта суть помогла мне

трюк был в $ ssh-add ~/.ssh / id_custom

моей проблемой было несколько учетных записей Git hub на одной локальной машине.