1 (17.12.2010 15:41:26 отредактировано brullek)

Есть настроенный SSH сервер и ряд клиентов, работающих с ним по ключу (без пароля).
Появилась надобность разрешить доступ по SSH еще одному клиенту, так же без пароля по ключу.
Я сгенерил на новой клиентской машине ключи:

ssh-keygen -t rsa

Объясните, что делать с открытым ключом: id_rsa.pub

Не могу найти в файловой системе на сервере  файл ./ssh/authorized_keys

Хотя в конфиге sshd_config  сервера он мелькает:

AuthorizedKeysFile                 ./ssh/authorized_keys

Повторюсь, что все работает как нужно. Задача разрешить новому пользователю подключаться без пароля по ssh. Как это правильно делается я пока не знаю - поэтому и прошу помочь разобраться.

Уважаю мораль и амораль одинаково...

2

http://belgorod.lug.ru/wiki/index.php/S … 1%87%D1%83
http://www.opennet.ru/base/sec/ssh_pubkey_auth.txt.html

3

Маны эти читал, там опять же говорят про то что нужен файл autorezed_keys, но где он лежит?

Уважаю мораль и амораль одинаково...

4

Вы читать умеете, нет?

brullek пишет:

AuthorizedKeysFile                 ./ssh/authorized_keys

сами же написали... если нет, создайте

5

Он должен лежать в домашней дериктории пользователя, похоже.
Обычно это ~/.ssh/authorized_keys

6

Сейчас как-то без этого файла работают все клиенты.

Уважаю мораль и амораль одинаково...

7

А что в нутри файла authorized_keys должно быть?

Уважаю мораль и амораль одинаково...

8

У рута такого файлика тоже нет?

Посмотрите также в /etc/ssh

9

Там должен быть открытый ключ клиента.

10

man ssh-copy-id

А по-простому: вы должны добавить свой публичный ключ в файл authorized_keys на сервере, т.е. дописать его в конец этого файла или, если файла ещё нет, создать его.

Был, был и весь вышел...

11

там только 1 файл сейчас - known_host

Уважаю мораль и амораль одинаково...

12

У рута нет, в /etc/ssh тоже нет

сделал

grep -iR autorized_keys ./

тоже не нашел этот файл.

Уважаю мораль и амораль одинаково...

13

brullek пишет:

там только 1 файл сейчас - known_host

Так создай там требуемый файл.

14

Меня уже больше интересует, как пользователи сейчас работают

15

Я не тороплюсь его создавать, из соображаний, что сейчас все остальные клиенты работают нормально.

Уважаю мораль и амораль одинаково...

16

У всех клиентов в домашних директориях должен быть этот файл!

17

Хотя, стоп. Если написано именно

AuthorizedKeysFile                 ./ssh/authorized_keys

то файл не в домашних директориях, а именно в ./ssh/authorized_keys только непонятно относительно чего этот путь.

18

У пользователя есть файлик xxxx.key внутри него хранится приватный ключ
подключение у них реализовано командой

ssh -i ./xxxx.key user@host
Уважаю мораль и амораль одинаково...

19

на сервере всего 2 юзера, один из которых root - просмотре их каталоги - нужный файл замечен не был.

Уважаю мораль и амораль одинаково...

20

Тогда в корне или в /etc. Просканируй всю систему для поиска этого файла.

21

Из журнала «Linux Format» №119, как объяснить проще — я не знаю  wink

+ открыть спойлер

Держим SSH в безопасности
Для повышения защищенности можно кое-что изменить в конфигурационном файле сервера (/etc/ssh/sshd_config). Для начала запретим вход в систему под пользователем root, установив параметр

PermitRootLogin no

Если в удаленной сессии нужно запускать программы от имени суперпользователя- root, можно войти на удаленный компьютер как обычный пользователь, а потом получить права администратора с помощью команды su или sudo. Чтобы налетчик смог это повторить, ему нужно знать имя пользователя, его пароль и пароль root – в три раза больше информации, чем было бы нужно для непосредственного доступа от имени root.
Для ограничения доступа используются и другие директивы: DenyUsers, AllowUsers, DenyGroups и AllowGroups. Их назначение понятно из названия. Каждая из них принимает разделенный пробелами список имен пользователей или групп (не числовых идентификаторов), доступ для которых нужно разрешить или запретить. Директивы обрабатываются в приведенном порядке, до первого совпадения. Если ни одна директива не задана, попытаться войти может любой пользователь. Имена пользователей могут задаваться как просто имена или в виде user@host, тогда проверяются и имя пользователя, и хост. Учтите, имя пользователя сравнивается с именем пользователя, под которым вы входите в систему, а хост сравнивается с именем удаленного компьютера, с которого вы пытаетесь зарегистрироваться. Это позволяет разрешить доступ только с определенных компьютеров: скажем, заходить на домашний ПК с работы. Можно применять шаблоны: например, директива

AllowUsers jim@*.mywork.ru

позволит входить в систему под пользователем jim с любого компьютера в сети на работе. Эти директивы разрешают или запрещают только попытки входа, без пароля вам все равно не обойтись…
Скорая помощь
Храните копии ваших закрытых ключей в надежном месте подальше от компьютера. В противном случае при их утрате или повреждении вы, возможно, не сможете зайти в систему.
Если только вы не задали вход в систему без пароля! Да почему же, после стольких лекций по безопасности? Потому что на самом деле это безопаснее. Сложность пароля ограничена – ведь вы должны его помнить, а файл ключа может быть больше и иметь в миллиарды раз больше перестановок, чем пароль. Для начала создайте пару файлов ключей с помощью команды

ssh-keygen

У вас запросят парольную фразу. Она может быть пустой (тогда для входа достаточно просто иметь закрытый ключ), но для повышения безопасности можно задать и ее. Беспарольные ключи больше подходят для автоматизированных систем, но они довольно удобны и в остальных случаях. Теперь в каталоге ~/.ssh есть два файла: id_rsa (или id_dsa, если вы указали ssh-keygen создать ключ DSA) и id_rsa_pub. Первый файл – это закрытый ключ, и его нужно хранить в безопасном месте, а второй – открытый, его нужно добавить в файл ~/.ssh/authorized_keys на удаленном компьютере. Файл можно скопировать на флэшку, вставить ее в удаленный компьютер и добавить с помощью команды

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

или, если у вас еще включен удаленный вход по паролю, передайте его по сети командой

cat ~/.ssh.id_rsa.pub | ssh remote.computer tee -a ~/.ssh/authorized_keys

Теперь разрешите аутентификацию по ключу, установив параметр

PubkeyAuthentication yes

в файле /etc/ssh/ssh_config на удаленном компьютере, и перезапустите сервис SSH.
Как показано выше, вход в систему с паролем можно отключить совсем, требуя обязательного использования ключа (возможно, в сочетании с парольной фразой) – добавкой в файл sshd_config следующих строк:

PasswordAuthentication no

Обычно ключ хранится в каталоге ~/.ssh, и это хорошо, если вы подключаетесь со своего компьютера. Чтобы подключаться откуда угодно, закрытый ключ можно записать на флэшку и указать SSH, где его искать, опцией -i.

ssh -i /media/usbstick/id_rsa

В этом случае ключ нужно защитить с помощью парольной фразы, иначе потеря USB- брелка будет равносильна потере ключа от дома. Если вы хотите использовать парольную фразу только когда заходите извне, и не напрягаться с ней при работе на собственном компьютере, то для флэшки нужно создать собственную пару ключей.
Весь этот разговор о перезапуске службы может вызвать у вас вопрос: «А что будет, если я испорчу конфигурационный файл на удаленном компьютере и перезапущу службу?». Ну, плохая новость – вы не сможете войти до тех пор, пока не поправите его. А хорошая новость – существующие соединения не затрагиваются перезапуском. Так что, изменив конфигурационный файл и перезапустив sshd, не закрывайте текущую сессию и попробуйте открыть новую с другого терминала. Если сделать это не получится, у вас остается открытая сессия, в которой можно исправить ошибки.

Был, был и весь вышел...

22

Hrafn пишет:

Меня уже больше интересует, как пользователи сейчас работают

через файл known_hosts, в этот файл хеша имен и не более того, это некий центр аторизации списка имен серверов, которые мы как бы признали правильным, если мы подключаемся к серверу и наши хеши не=, то будет соответсвующие сообщение "доступ запрещен" . В общем это все есть в доке по openssh :-)

It is good day to die ...
MS Windows 10
Заметки о главном...

23

Lupo Alberto - ваши комментарии не уместны.
Вы видимо не поняли в чем проблема.

Уважаю мораль и амораль одинаково...

24

Lupo Alberto пишет:

Из журнала «Linux Format» №119, как объяснить проще — я не знаю  wink

По умолчанию в конфиге указан путь в домашних директориях:

AuthorizedKeysFile                 %h/.ssh/authorized_keys

У человека этот путь изменён на:

AuthorizedKeysFile                 ./ssh/authorized_keys

Отсюда и вопрос - где этот файл лежит?

25

Дал команду

grep -iRan authorized_keys /
Уважаю мораль и амораль одинаково...

26

Vascom пишет:

Отсюда и вопрос - где этот файл лежит?

Если он создаст его в домашнем каталоге пользователя, к учётной записи которого настраивается доступ, значит, будет лежать там  wink
Тут уже не один раз повторялось: если этого файла нет, нужно создать его.

Был, был и весь вышел...

27

Lupo Alberto пишет:
Vascom пишет:

Отсюда и вопрос - где этот файл лежит?

Если он создаст его в домашнем каталоге пользователя, к учётной записи которого настраивается доступ, значит, будет лежать там  wink
Тут уже не один раз повторялось: если этого файла нет, нужно создать его.

Нет. В конфиге прописан другой путь. Читай мой пост внимательнее.

28

Lupo Alberto
А как тогда сейчас все работают без этого файла?

Уважаю мораль и амораль одинаково...

29

Мб стоит по логам посмотреть? я подкючюсь с компа де работает, и в логах мб где-нибудь вспылывет? только я не знаю в каких логах и что искать пока.

Уважаю мораль и амораль одинаково...

30

Запускай ssh с опцией -vvv