Сервер продолжает запрашивать пароль после того, как я скопировал мой открытый ключ SSH в authorized_keys

Диск заполнен. В частности, раздел, содержащий образы вашего ядра (файлы, необходимые для загрузки системы). Смотрите здесь:

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.5.0-41-generic with 1.

Вам нужно очистить старые версии ядра.

Самый простой способ сделать это - установить «Ubuntu Tweak» (через Центр программного обеспечения), нажать на вкладку «Дворник» (последняя) и затем выбрать «Система> Старый» ядра »в списке на левой стороне окна и дайте ему убраться.

Вы также можете посмотреть здесь Как удалить старые версии ядра для очистки меню загрузки? для объяснения, как это сделать вручную. (Несколько возможных способов) После того, как вы удалили хотя бы один старый пакет версии ядра, запустите dpkg-reconfigure -a, чтобы очистить все наполовину установленные пакеты.

ИМХО, Ubuntu должен сделать это немного проще, но упомянутый там метод тоже работает.

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

df
df -i
ls -la /boot

43
задан 27.02.2016, 02:25

10 ответов

Существуют различные способы решения этой проблемы: вы можете настроить sshd (на стороне сервера) или ssh (на стороне клиента), чтобы не использовать аутентификацию по паролю. Отключение аутентификации по паролю на сервере делает ваш сервер более безопасным, но у вас будут проблемы, если вы потеряете свой ключ.

Чтобы сделать ssh (на стороне клиента) с использованием аутентификации pubkey, добавьте некоторые опции в команду ssh:

ssh -o PubkeyAuthentication=yes -o PasswordAuthentication=no -X git@server

Если это работает, вы можете установить опцию PasswordAuthentication=no на постоянной основе в файл конфигурации клиента ssh /etc/ssh/ssh_config для всей системы или ~/.ssh/config для конкретного пользователя (подробнее см. man ssh_config).

5
ответ дан 14.09.2019, 12:28
  • 1
    По умолчанию вся клиентская конфигурация SSH (/etc/ssh/ssh_config) в системах Debian/Ubuntu уже предпочитает PubkeyAuthentication и попытка, что сначала, как Вы будете видеть при вызове ssh в подробном режиме. – Warbo 15.06.2013, 03:35

Также убедитесь, что ваш домашний каталог пользователя (в вашем случае / home / git) доступен только для вас. У меня была эта проблема однажды, потому что мой домашний каталог был доступен для записи в группе. В /var/log/auth.log сказано: «Отказ в аутентификации: неправильное владение или режимы для каталога / home / chuck». (это сделано для того, чтобы убедиться, что он не использует файл author_keys, с которым кто-то кроме вас возился!)

18
ответ дан 14.09.2019, 12:28
  • 1
    В то время как это, конечно, полезно, я думаю, что это - больше дополнение к ответ xeyes. – rudigrobler 15.06.2013, 03:36
  • 2
    О, мой бог, большое спасибо!. Мои глаза горели, потому что весь поиск я сделал на Google. Наконец это работало!. Огромное спасибо. – 2 revs, 2 users 100% 06.08.2015, 09:48
  • 3
    Человек Спасибо!, я провел часы, ища решение... и это разрешило все мои проблемы. – Kory Nunn 22.06.2016, 07:37
  • 4
    да. это было им. довольный я решил прочитать следующий ответ вниз – Warbo 21.08.2016, 20:44
  • 5
    Также регистрация /etc/passwd, каков корневой каталог пользователя. Моя причудливая проблема была им hadn' t стандартный – MD. Sahib Bin Mahboob 16.01.2017, 10:16

Вы используете ~ / .ssh / config на своем локальном компьютере? Я столкнулся с этой проблемой, когда использую директиву IdentityFile в файле конфигурации и указываю на открытый ключ. Например:

Host Cloud
    Hostname cloud.theclouds.com
    User git
    IdentityFile ~/.ssh/config/mykey # This is correct

    # IdentityFile ~/.ssh/config/mykey.pub # This is incorrect
3
ответ дан 14.09.2019, 12:28

На стороне сервера демон ssh будет регистрировать ошибки в /var/log/auth.log, поэтому проверьте этот файл, чтобы увидеть, о чем сообщается.

Со стороны клиента при установлении соединения вы можете добавить флаг -v (или -vv или -vvv), чтобы увеличить детализацию. Возможно, вы сможете определить свою проблему таким образом.

Вот другие вещи, которые нужно проверить.

  • Убедитесь, что /home/git/.ssh/authorized_keys принадлежит git.
  • Убедитесь, что /home/git/.ssh/authorized_keys имеет режим 600 (-rw-------).

Также проверьте файл /etc/ssh/sshd_config.

  • PubkeyAuthentication следует установить на yes
  • Существует также директива AuthorizedKeysFile, которая определяет путь, где должны находиться авторизованные ключи. Убедитесь, что он закомментирован или по умолчанию %h/.ssh/authorized_keys.
42
ответ дан 14.09.2019, 12:28
  • 1
    Thank' s! Я попробую это опции и возвращусь позже к обратной связи! – RichardOD 08.03.2012, 03:25
  • 2
    Что Вы делаете если Вы don' t видят /var/log/auth.log файл? Существует ли способ включить это? – aL3891 12.10.2013, 08:48
  • 3
    Журналы могли бы быть в/var/log/secure если Вы don' t имеют /var/log/auth.log – kenwarner 18.07.2014, 08:24
  • 4
    Глупая ошибка, у меня был scp-редактор .pub файл к только в .ssh папке на сервере, с которым я хотел соединиться. Удостоверьтесь, что переместили его в authorized_keys папку. – Pat 17.11.2014, 04:19
  • 5
    Я также должен был удалить группу, пишущую полномочия из моего корневого каталога самого. Тогда я перезапустил ssh с sudo service ssh restart – Peter 26.10.2015, 12:37

Если ваша домашняя папка зашифрована, то ваш authorized_keys файл не читается до входа в систему. Вы должны переместить его за пределы своего дома.

Здесь объясняется и как это сделать: https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Trou устранение неполадок

2
ответ дан 14.09.2019, 12:28

Еще одна вещь, которую нужно проверить, это наличие в вашем открытом ключе дополнительных возвратов каретки. Я следовал совету выше, чтобы просмотреть /var/log/auth.log и увидел ошибку при чтении ключа. Ключ был длиной около двух строк вместо четырех. В ключ были вложены дополнительные возвраты каретки.

При использовании редактора vi используйте shift-j, чтобы соединить строки и стереть лишний пробел в строке ключа.

1
ответ дан 14.09.2019, 12:28
  • 1
    Я утраиваю проверенные полномочия и sshd_config. Ударенный моя голова о стену в течение половины часа. Это было моей ошибкой! Так или иначе, I' ve, выработавший привычку окончания всех файлов, я вручаю редактирование с дополнительным разрывом строки. Даже с одним ключом и возвратом каретки в конец , it' s достаточно, чтобы испортить авторизацию. – Fengyang Wang 27.09.2013, 07:11
  • 2
    Удостоверьтесь, что Вы имеете-----ЗАКОНЧИТЕ ЗАКРЫТЫЙ КЛЮЧ RSA-----бит, также. – Lesha Ogonkov 22.11.2013, 11:07

Также может быть, что вы звоните

sudo git clone gituser@domain:repo.git

, где ключ ssh пользователя root не был добавлен в authorized_keys из gituser

0
ответ дан 14.09.2019, 12:28

Если у вас есть несколько закрытых ключей, используйте ключ -v в команде ssh-соединения, чтобы проверить, используются ли другие первичные ключи для подключения. Если это не так, скажите клиенту ssh использовать их со следующей командой:

ssh-add path/to/private/key
1
ответ дан 14.09.2019, 12:28

Вы также можете добавить свой ключ к агенту SSH:

u@pc:~$ ssh-agent bash
u@pc:~$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/u/.ssh/id_rsa: # ENTER YOUR PASSWORD
Identity added: /home/u/.ssh/id_rsa (/home/u/.ssh/id_rsa)
1
ответ дан 14.09.2019, 12:28

На машине под управлением Ubuntu 18.04.02 LTS предложение установить разрешения от ~/.ssh до 600 у меня не сработало. Я должен был установить разрешения на 700, а затем все работало нормально.

0
ответ дан 14.09.2019, 12:28

Теги

Похожие вопросы