LINUX.ORG.RU

Проблема с SSH ключами

 , ,


0

1

Не кидайтесь палками, изрыл весь инет и много чего попробовал)) Задача следующая: на нескольких серверах создается один и тот же локальный юзер и необходима авторизация на него с помощью ключа. С юзера на юзер Что я пробовал:

Cоздал .ssh/ на юзере:

mkdir /home/user4ik/.ssh/

Сгенерил ключ: 

ssh-key-gen

На другом сервере: 

mkdir /home/user4ik/.ssh/

Перекинул его юзеру другого сервера: 

ssh-copy-id user4ik@anotherserver

Удостоверился, что появился файл authorized_keys в anotherserver

Дал права на все вложения 

chmod 777 /home/user4ik/.ssh/ (на всякий случай) всем серверам

Авторизовался с головного сервера, согласно предписанию команды ssh-copy-id

На всех серверах правил конфиг /etc/ssh/sshd_config: 

PubkeyAuthentication yes PasswordAuthentication no

systemctl restart sshd

Проверка: Ни с одного из серверов не могу зайти с юзера на юзер Пишет 

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

По root заходит только с головного на другой Результат выполнения команды на обоих серверах ssh-add: 

Could not open a connection to your authentication agent.


Не очень понял откуда и куда нужно пользователя пускать, но вот это:

Дал права на все вложения

Точно лишнее (и вредное)

anonymous ()

mkdir /home/user4ik/.ssh/

Проверь права на файлы, если они доступны на чтение кому-либо, кроме владельца, авторизация по ключам работать не будет.

Khnazile ★★★★★ ()

chmod 777 /home/user4ik/.ssh/ (на всякий случай) всем серверам

Это ошибка. На ~/.ssh нужны строго определённые права и sshd не будет работать, если там проходной двор. Делай chmod -R u=rwX,go= /home/user4ik/.ssh

legolegs ★★★★★ ()
Последнее исправление: legolegs (всего исправлений: 1)

chmod 777 /home/user4ik/.ssh/ (на всякий случай) всем серверам

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

einhander ★★★★★ ()
Ответ на: комментарий от anonymous

на папку с ключами 0755

$ stat ~/.ssh | grep Access
Access: (0700/drwx------)  Uid: ( 1000/     exl)   Gid: ( 1000/     exl)

на все файлы в папке 0755

$ stat ~/.ssh/id_rsa* | grep Access
Access: (0644/-rw-r--r--)  Uid: ( 1000/     exl)   Gid: ( 1000/     exl)
Access: (0644/-rw-r--r--)  Uid: ( 1000/     exl)   Gid: ( 1000/     exl)
EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Проделал ряд действий. В итоге если пароль в конфиге sshd_config оставляю, то «ходит и туда и туда». Если нет, то только с головного и то только от рута до рута.

С user4ik@головной

ls -la .ssh/ total 20 drwx——. 2 user4ik user4ik 80 Jul 27 18:06 . drwx——. 6 user4ik user4ik 154 Jul 28 10:58 .. -r——–. 1 user4ik user4ik 796 Jul 24 14:34 authorized_keys -rw-r–r–. 1 user4ik user4ik 1679 Jul 27 14:02 id_rsa -rw-r–r–. 1 user4ik user4ik 400 Jul 27 14:02 id_rsa.pub -r——–. 1 user4ik user4ik 6300 Jul 27 17:17 known_hosts

Что-то накрутил на подчиненном и поэтому имею)):

user4ik@anotherserver

ls -la .ssh/

ls: cannot access .ssh/.: Permission denied

ls: cannot access .ssh/..: Permission denied

ls: cannot access .ssh/authorized_keys: Permission denied

ls: cannot access .ssh/known_hosts: Permission denied

total 0

d????????? ? ? ? ? ? .

d????????? ? ? ? ? ? ..

-????????? ? ? ? ? ? authorized_keys

-????????? ? ? ? ? ? known_hosts

root@anotherserver

ls -la ~/.ssh/

total 8

dr——–. 2 root root 48 Jul 23 17:33 .

dr-xr-x—. 6 root root 190 Jul 21 19:46 ..

-r——–. 1 root root 397 Jul 21 19:46 authorized_keys

-r——–. 1 root root 538 Jul 24 17:48 known_hosts

Вследствие чего не читается ключ. Выправляю через sudo - картина та же. При этом, если лезу в это папку из под root то там все выправляется, и выправлено:

ls -la user4ik/.ssh/*

-rw-r–r–. 1 user4ik user4ik 400 Jul 27 18:06 user4ik/.ssh /authorized_keys

-rw-r–r–. 1 user4ik user4ik 175 Jul 27 18:07 user4ik/.ssh/known_hosts

Думаю, может ключи переделать?

Brand ()
Ответ на: комментарий от anonymous

Удалял. Все равно получается, что с головного ходит без ключа норм, а с другого

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Ключи в cat .ssh/authorized_keys совпадают с id_rsa.pub

Права, повторюсь, урезал

Brand ()
Ответ на: комментарий от Brand

Ёпт! ИНСТРУКЦИЯ

  1. На первом сервере выполняешь из-под пользователя ssh-keygen
  2. На этом же сервере выполняешь команду ssh-copy-id «твой пользователь»@«удалённый сервер»
  3. PROFIT!!! Теперь можешь с первого сервера ходить по ssh на удалённый по ключу. Сделай так и не иби мозг
anonymous ()
Ответ на: комментарий от anonymous

С первого могу. Но мне еще надо чтобы ходил второй на первый, т.е. в обе стороны.

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

это на втором сервере. Есть конечно идея генерить ключ на ВТОРОМ сервере и раздать его на ПЕРВЫЙ… Но это громоздко, т.к. у меня порядка 50 серверов))

2 сервера использую для эмуляции

Brand ()
Ответ на: комментарий от Brand

Тогда тебе надо сделать, чтобы на обеих машинах были и закрытие ключи одинаковые.

После генерации ключей скопируй отрытый ключ (id_rsa.pub) в authorized_keys, после целиком всю директорию .ssh размести на удалённые машины (права доступа к директории и файлам должны быть как на головном сервере).

Тогда сможешь ходить этим пользователем с любой машины на любую.

anonymous ()