#linux #git #ssh #rsa #putty
Сервер с centos подключается к репозиторию bitbucket по ssh-rsa ключам. Если это делать непосредственно под root'ом на этой машине, то git clone проходит успешно. Если подключиться к машине по putty и попробовать склонировать репозиторий под рутом, появляется сообщение об отказе в правах. Почему так происходит? Как сгенерировать ключи, по которым можно будет работать с гитом под putty? Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
Ответы
Ответ 1
ни в коем случае не надо «работать под root-ом». подключаетесь к машине вы, надеюсь, под именем «рядового» пользователя, вот от его имени и надо работать, получая root-овые привилегии лишь для выполнения административных задач. git clone и тому подобные команды оперируют приватным ключом (в вашем случае — из файла id_rsa), хранящимся в каталоге .ssh/ в домашнем каталоге пользователя, от имени которого выполняется команда. для пользователя root это обычно каталог /root/.ssh/. для «рядового» пользователя это обычно /home/пользователь/.ssh/. вам надо скопировать файл (в вашем случае /root/.ssh/id_rsa) в каталог «рядового» пользователя /home/пользователь/.ssh/. если такого каталога нет, создайте его (от имени пользователя). если каталог уже существует, эта команда не сделают ничего: $ mkdir -p ~/.ssh если такой каталог уже существовал и в нём уже были файлы id_rsa и id_rsa.pub, на всякий случай переименуйте их (вдруг они нужны для доступа куда-нибудь ещё): $ mv ~/.ssh/id_rsa{,.backup}; mv ~/.ssh/id_rsa.pub{,.backup} теперь копируем файлы и изменяем их владельца (операция осуществляется от имени root-а, ведь у «рядовых» пользователей нет доступа к его домашнему каталогу): # cp /root/.ssh/id_rsa{,.pub} /home/пользователь/.ssh/ # chown -R пользователь /home/пользователь/.ssh/ дальше (уже от имени пользователя) сто́ит [пере]установить права на каталог и его содержимое: $ chmod -R u+w,go= ~/.ssh если проделанные операции не помогли, и при выполнении git clone от имени пользователя (при подключении с помощью putty) возникает та же самая ошибка, в первую очередь проверьте значение переменной окружения HOME: $ echo $HOME она должна содержать домашний каталог пользователя (обычно: /home/пользователь). именно на значение этой переменной и «опираются» программы (тот же git) при поиске файлов: если в этой переменной хранится что-то отличное от домашнего каталога, то, например, каталог .ssh (и файлы в нём) будут разыскиваться совсем не там, где следует. дополнение по поводу использования нестандартного имени (или местоположения) файла с секретным ключом. например, файл с секретным ключом называется ~/.ssh/id_rsa.vtoroj. тогда для использования именно этого ключа при подключении к серверу bitbucket.org можно добавить в конец файла ~/.ssh/config такие строки: host bitbucket.org identityfile ~/.ssh/id_rsa.vtoroj
Комментариев нет:
Отправить комментарий