Различия между версиями 2 и 3
Версия 2 от 2008-08-15 17:53:09
Размер: 9355
Редактор: George Tarasov
Комментарий:
Версия 3 от 2008-09-08 20:05:34
Размер: 10193
Редактор: George Tarasov
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 7: Строка 7:
Есть альтернативный способ. Мы тут д этого имели дело с ключами со сторны хоста. Пользователю не возмб иметь свой ключ персональный ssh-шный и раздавать открыте ключи, чтобы система аутентификации смотрела на список имеющихся ключей и видела, что этоимено тото пользователь. Есть альтернативный способ. До этого мы имели дело только с ключами со стороны хоста. Но пользователь имеет право обладать собственным ssh-ключом и раздавать открытые ключи, чтобы система аутентификации хоста могла затем просмотреть список имеющихся у нее ключей, найти его и убедиться в подлинности запрашивающего клиента.
Строка 9: Строка 9:
Ключи акже утекают, но они не светятся и не передаются. Да, при утере носителя с ключём это равносильно разглашению пароля, на ключ мжн запарлить. Сгенерируем ключ. Утечка ключей возможна и здесь, но ключи не передаются и не набираются вручную. Разумеется, утеря носителя с ключом равносильна открытому разглашению ключа, но его можно, скажем, зашифровать под пароль. Попробуем сгенерировать ssh-ключ.
Строка 11: Строка 11:
Псмотрите локльный .ssh. Там появился id_rsa и .pub. посмтрим их права. Публичный доступен всем, закрытый тлько владельцу. Для обесп. логина п ключу на уд. машине, надо добавить ткр. ключ в файл authorized_keys. Заглянем в локальный каталог .ssh. Теперь там есть файлы id_rsa и .pub. Стоит обратить внимание на права доступа к этим файлам: публичный ключ доступен всем, закрытый - только владельцу. Для того, чтобы по ключу можно было соединиться с удаленной машины, надо добавить открытый ключ в файл authorized_keys.
Строка 13: Строка 13:
Этого фалйа там не существует. Теперь вып. команду ssh-copy-id, которая есть только в альте. Это шеллскрипт, который занимается рвно тем, чт сказано. Если повторим команду ls, заметим, что теперь пароль не запрашивали, и увидим, чт файл появится. Изначально данный файл не существует. Необходимо выполнить команду ssh-copy-id, которая есть только дистрибутиве AltLinux. Это скрипт shell, который занимается именно тем, о чем мы только что говорили - добавляет ключ в файл, в том числе и создает этот файл в случае его отсутствия. Если мы повторим команду ls, то увидим, что authorized_keys появился.
Строка 15: Строка 15:
Понятно, что ключом без пароля можн пользоваться только в пределах лок. сети. Поск. этт ключ лежит в файле, и он мжет утеч легче, чем парль. В конце концов, рут той машины взьмёт ваш ключ и зайдёт на уд. машину, где вы рут. Поэтому ключ следует защищать пассфразой. Пароль, ктрым мы защищ. этот ключ эт довольн важный пароль, пск. он позволяет восп. им для логина на всех машинах, где ежит ключ. Желательно, чтобы пассфраза не совп. с парлем. Очевидно, что ключом без пароля можно пользоваться только в пределах локальной сети, поскольку он хранится в файле и может "утечь" легче, чем набираемый пароль. В примеру, любой, кто имеет права суперпользователя на машине, где вы его храните, может просто найти и взять ваш ключ и воспользоваться им. Поэтому ключ следует защищать пассфразой. Пароль, которым мы защищаем ключ, очень ценен, так как он позволяет воспользоваться вашим логином на всех машинах, на которых этот ключ хранится. Потому желательно, чтобы пассфраза не совпадала с паролем.
Строка 17: Строка 17:
Запихаем его тоже на уд. машину. Попрбуем залогиниться туда.ю треперь на спрашивает пассфразу. В чём же удбств? Не смотря на то, что кажется, что чем начали, тем и закочили, то сейчас есть удобство, и пароль тут дин: если 10 разных машин, у которых 10 разных паролей, более того, можно на уд. машинах можно вообще убить пароль, чтобы можно было логиниться тодлько по ssh. Ещё дин бонус --- пассфраза не передаётся по сети. Есть один сущ. недстаток --- если машина, за которой вы сидите небезопасна, и там кейлоггер, то утекает горазд больше, чем огин и пароль до конкретной машины. Поместим теперь и пароль на удаленную машину и попробуем туда войти. Видно, что теперь у нас спрашивают пассфразу. Вопрос: в чём же удобство? Несмотря на ощущение, что мы вернулись к тому, с чего начали, то сейчас есть удобство, и пароль тут дин: если 10 разных машин, у которых 10 разных паролей, более того, можно на уд. машинах можно вообще убить пароль, чтобы можно было логиниться тодлько по ssh. Ещё дин бонус --- пассфраза не передаётся по сети. Есть один сущ. недстаток --- если машина, за которой вы сидите небезопасна, и там кейлоггер, то утекает горазд больше, чем огин и пароль до конкретной машины.

SSH: использование ключей

Как видно, при каждой передаче информации нам приходится вводить пароль. В чем здесь может таиться опасность? Будучи ответственным за безопасность данных, администратор обязан принимать во внимание тот факт, что пароль может быть подсмотрен во время набора, или попросту подобран. В любом случае, каждый набор пользователем пароля --- лишнее беспокойство для администратора.

Что касается огина руту, ... Вобще логиниться рутом это вообще неопр. штука. Вы как адм. читаете лги и видите, что кто-т логинился рутом и чт-то там понаделал, поэтому даже локальн не реком. логиниться рутом и что-т там понаделал.

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

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

Заглянем в локальный каталог .ssh. Теперь там есть файлы id_rsa и .pub. Стоит обратить внимание на права доступа к этим файлам: публичный ключ доступен всем, закрытый - только владельцу. Для того, чтобы по ключу можно было соединиться с удаленной машины, надо добавить открытый ключ в файл authorized_keys.

Изначально данный файл не существует. Необходимо выполнить команду ssh-copy-id, которая есть только дистрибутиве AltLinux. Это скрипт shell, который занимается именно тем, о чем мы только что говорили - добавляет ключ в файл, в том числе и создает этот файл в случае его отсутствия. Если мы повторим команду ls, то увидим, что authorized_keys появился.

Очевидно, что ключом без пароля можно пользоваться только в пределах локальной сети, поскольку он хранится в файле и может "утечь" легче, чем набираемый пароль. В примеру, любой, кто имеет права суперпользователя на машине, где вы его храните, может просто найти и взять ваш ключ и воспользоваться им. Поэтому ключ следует защищать пассфразой. Пароль, которым мы защищаем ключ, очень ценен, так как он позволяет воспользоваться вашим логином на всех машинах, на которых этот ключ хранится. Потому желательно, чтобы пассфраза не совпадала с паролем.

Поместим теперь и пароль на удаленную машину и попробуем туда войти. Видно, что теперь у нас спрашивают пассфразу. Вопрос: в чём же удобство? Несмотря на ощущение, что мы вернулись к тому, с чего начали, то сейчас есть удобство, и пароль тут дин: если 10 разных машин, у которых 10 разных паролей, более того, можно на уд. машинах можно вообще убить пароль, чтобы можно было логиниться тодлько по ssh. Ещё дин бонус --- пассфраза не передаётся по сети. Есть один сущ. недстаток --- если машина, за которой вы сидите небезопасна, и там кейлоггер, то утекает горазд больше, чем огин и пароль до конкретной машины.

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

Тем не менее, в каком-то смысле мы всё равно, как начали, так и закончили, на показали конфетку --- беспарольный вход, но всё равно теперь надо вводить пассфразу, которая желательно должна быть круче, чем обычный пароль.

Для того, чтобы много раз пассфразу не хранить, есть ssh-agent, с точки зрения стартовой вы вводите пассфразу один раз, и дальше при ссх сначала ходит к агенту, спрашивает, а нет ли её у него, и всё.

Он запускается автматом (set| grep SSH), пск. эт всунуто в стартовые скрипты ПСПО, н мжно сделать это руками: ssh-agent/ Если сказать ssh-add -L, т увидим, что сейчас не добавлено ещё ни дного ключа. Дбавим наш ключ: ssha-add .ssh/id-rsa

Зайдём епщё раз. Видим, что пассфразу нас не просили, но при -v увидим, чт она использовалась.

Про переброс агнета: можно прделать след. штуку: при переходе на др. машину. Если сказать ssh -A, то при ssh-add мы увидим наш ключ. При заходе на уд. машину можно сказать прт, по которому можно обр. к ссх-агенту. Эт переменная окружения. Это штука потенциально опасная, потому что рут на той машине мжет свершенн спокойно восп. вашим агентом для получ. доступа на те сайты, на которых вы этим агентом пользуетесь. С другой сторны, носить с собой агента удобно, потому что с той машины можно хдить на третью и так далее.

У вас может быть некий дверенный хост, на котором и тлько на ём ледит закрытый ключ. Можно прделать след. штуку: можно зайти по парлю на доверенный хост, запустить здесь агента, сказать там ssh-add, чтобы нало кальной машине приехал оттуда ключ, чтобы с этим ключом ходить. То есть, у вас есть уверенность, чт ПО не модиф, но нет уверенности, что о псле вас не придёт человек и не задампает винчестер и потом не начнёт грубым перебором подбирать пассфразу.

Отн. ситуаций, когда вы не хотите хранить свй закр. ключ на конкретно этой машине.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

10

1

1

1

1

ConstantinYershow, GeorgeTarasov, MaximByshevskiKonopko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080730/03SshKeys (последним исправлял пользователь MaximByshevskiKonopko 2008-10-19 15:15:35)