OpenSSH

Продолжаю разбираться с администрированием сервера. Т.к. я работал под Windows, а сервер работал под linux - эту конфигурацию я и буду описывать. Для подключения через OpenSSH из Unix систем, мало что отличается.


Подключение по паролю.

Подключение к ssh из windows можно выполнить при помощи Putty. Без использования ключей. Просто вводим login password и профит.

Передача файлов по ssh выполняется при помощи утилиты winscp. А под *nix, я пользуюсь популярным двухпанельным файловым менеджером mc. Запускем winscp, создаем новую сессию, выбираем способ подключения "scp", вводим логин, пароль и подключаемся.





Подключение с использование RSA аутентификации.

Можно подключаться с использованием открытого/закрытого ключа для авторизации. Суть проста:
  • У сервера — файл с открытым ключем.
  • У клиента — файл с закрытым ключем.

Генерация ключей

Генерируются ключи вместе, либо на основе уже известного закрытого ключа и используются для авторизации. Для того что бы создать ключи можно воспользоваться утилитой из openSSH - ssh-keygen либо puttygen, из состава Putty.

ВАЖНО:
Файлы ключей — текстовые файлы их форматы отличаются у Putty и OpenSSH . Возможны 2 варианта развития событий:

1. Ключи созданы в Putty.
Запускаем puttygen, открываем ключи (либо генерируем). Копируем на сервер открытый ключ, (функции для его экспорта почему-то нет, что кажется мне нелогичным).

2. Ключи созданы в ssh-keygen. 
Отдаем закрытый ключ клиенту, а клиент, если ему нужно, преобразует ключ из формата SSH в формат Putty при помощи puttygen (интуитивно понятный интерфейс).

Настройка сервера

1. Включаем поддержку ключей в конфигурационном файле (у меня /etc/ssh/sshd_config). 
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile ~/.ssh/authorized_keys #Может быть любой путь
2. Нужно создать и заполнить сам файл authorized_keys.

Сей файл состоит из ключей записанных построчно (формат OpenSSH - весь ключ в одну строку). Т.е. если вы хотите разрешить логиниться с ключом, который вы создали в OpenSSH, просто дописываете открытый ключ с новой строки:
cat rsa_key.pub >> ~/.ssh/authorized_keys
Или, если ключ был cгенерирован в puttygen:
ssh_keygen -i -f rsa_key.pub >> ~/.ssh/authorized_keys

Теперь, можно перезапустить сервис:
sudo services ssh restart
или
/etc/init.d/sshd restart.

Настройка клиента

Тут ничего хитрого. 
В случае Putty - интуитивно понятный интерфейс. 
В случае OpenSSH - команда:
ssh <пользователь>@<адрес> -p <порт> -i <путь к закрытому ключу>
Если планируется запускать иксовые приложения, добавьте ключ -X.

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

ВОЗМОЖНЫЕ ПРОБЛЕМЫ:
1) Putty может не подключаться по rsa, если версии SSH и Putty не совместимы, потому советую качать самую свежую версию Putty при первых проблемах, что-бы отсечь этот вариант. download

Комментарии

Популярные сообщения из этого блога

Siege Up! Editor (beta)

STM32F4 и программный выход в DFU

Git и Yandex.Disk