ssh вопрос теоретический

Автор elimental, 14 июня 2016, 16:50:38

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

elimental

Всех приветствую !

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

Чего я не понимаю - при установке openssh-server мы на сервере тоже генерим ключи. Вот эти ключи для чего ? Сервер при установке соединения мне тоже отправляет открытый ключ для того что бы я с его помощью шифровал сообщения для него ?


Yrii

#1
да, ты когда первый раз соединяешься с сервером по паролю, то он тебе пересылает открытый ключ и в дальнейшем, при следующем подключении по паролю, происходит сверка этих ключей и происходит дальнейшее шифрование... (это если кратко).
поэтому и рекомендуется эти ключи передавать физически или по 100% защищенному каналу... (это уже др. тема)

Cообщение объединено 14 июня 2016, 20:27:45

Цитата: Yrii от 14 июня 2016, 16:59:10открытый ключ
точнее "отпечаток открытого ключа"

elimental

Спасибо за внесенную ясность.

oermolaev

Цитата: Yrii от 14 июня 2016, 16:59:10рекомендуется эти ключи передавать физически или по 100% защищенному каналу.
Yrii, ssh-copy-id - необходимо и достаточно? Или всё же как то "физически" ?

Yrii

#4
ssh-copy-id просто копирует публичных ключей на удалённый ПК.
теперь логически подумаем. чтобы скопировать ключ, нужно пройти аутентификацию, а чтоб это сделать...
логика понятна?

в теории, не что не мешает мне, во время твоей первой аутентификации, провести атаку по середине
поэтому при первом доступе нужно быть 100% уверенным в безопасности канала.

oermolaev

Цитата: Yrii от 14 июня 2016, 21:41:59ssh-copy-id просто копирует публичных ключей на удалённый ПК.
я полагал что ssh-copy-id не просто копирует, а копирует по 100% защищенному каналу. То есть это не так?

Yrii

а откуда взяться защищенному каналу при первом соединении?
Цитироватьssh-copy-id is a script that uses ssh(1) to log into a remote machine (presumably using a login password, so password authen‐
     tication should be enabled
, unless you've done some clever use of multiple identities).  It assembles a list of one or more
     fingerprints (as described below) and tries to log in with each key, to see if any of them are already installed (of course,
     if you are not using ssh-agent(1) this may result in you being repeatedly prompted for pass-phrases).  It then assembles a
     list of those that failed to log in, and using ssh, enables logins with those keys on the remote server.  By default it adds
     the keys by appending them to the remote user's ~/.ssh/authorized_keys (creating the file, and directory, if necessary).  It
     is also capable of detecting if the remote system is a NetScreen, and using its 'set ssh pka-dsa key ...' command instead.

oermolaev


Yrii

логика такая. вот допустим ты поднял сервак в локалке - зашел туда по паролю - подумал, что использовать пароль тебе лень - локалка у тебя не скомпрометирована (допустим) - следовательно опасаться нечего -   воспользовался удобным скриптом ssh-copy-id

oermolaev

Цитироватьis a script that uses ssh
где ssh - это Secure Shell, то есть тот самый 100% защищенный канал?

Yrii

Цитата: oermolaev от 14 июня 2016, 21:51:33
вот отсюда:
Цитата: Yrii от 14 июня 2016, 21:49:29is a script that uses ssh(1)

ну, логично.

вот тебе пример с моего тестового сервака:
$ ssh-copy-id 172.16.0.111
The authenticity of host '172.16.0.111 (172.16.0.111)' can't be established.
ECDSA key fingerprint is e8:4c:e2:c0:86:05:91:82:e1:fc:87:1e:50:a6:e7:b0.
Are you sure you want to continue connecting (yes/no)?

т.е. происходит, то с чего мы начали

oermolaev

хорошо, какой вариант передачи открытого(!) ключа более правильный?

Yrii

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

oermolaev

Спасибо.
На счёт "забить" - легко. Но мы же про теорию.

Yrii

вот. к сведенью - https://habrahabr.ru/post/176693/ + комменты
поэтому, при высокой важности соединения, лучше перестраховаться.