Фев 102013
 

sshЗадача: авторизация на SSH сервере по ключу (без пароля). 

Создание пары ключей:

На клиентской машине, откуда собираемся коннектиться к SSH серверу:
1. Скачиваем утилиты семейства Putty.
К примеру тут:
Нам потребуются следующие пакеты:
puttygen.exe — пакет для создания пары ключей
putty.exe — сама ssh-терминалка
2. Запускаем утилиту puttygen.exe, внизу выбираем SSH2, нажимаем Generate и водим мышкой в районе прогресс-бара для генерации случайной последовательности.
3. Сохраняем ключи. Save public key — сохранит публичный ключ. Также он будет виден в строке типа
ssh-rsa AAAAB3NzaC1yc…
— его даже проще от туда будет скопировать в текстовый файл.
Save privage key — сохранит приватный ключ. Этот ключ лучше сохранить в секрете (на внешнем носителе USB, зашифрованном томе и т.п.).
Так мы создали пару ключей, без passfrase (пароля, который будет требоваться при активации ключа). Если вам к ключу еще необходим и пароль, то его также можно указать. 

На ssh сервере:
создаем директорию для хранения ключей и раздаем на нее права себе же

mkdir /home/user/.ssh
sudo chmod  770 -R /home/user/.ssh/

Публичный ключ необходимо положить на сервер
После создания пары ключей, приватный — остается у пользователя в секрете, а публичный необходимо положить в домашнюю директорию пользователя, в файл ~/.ssh/authorized_keys
то есть :
заходим по фтп или ssh и добавляем наш приватный ключ в файл ~/.ssh/authorized_keys:

echo "your_private_key" >> ~/.ssh/authorized_keys

Выставляем права

chown -R user /home/user/.ssh
chmod 700 /home/user/.ssh/
chmod 600 /home/user/.ssh/authorized_keys

Также убедитесь (на сторе это закоментированно) что на сервере разрешена авторизация по ключу, для этого в файле /etc/ssh/sshd_config должны быть строки:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile     .ssh/authorized_keys

Если наш пользователь будет совсем без пароля, то для этого нужно в файле /etc/shadow заменить хеш пользовательского пароля на символ *. Пример (cat /etc/shadow) :

user:*:13783:0:99999:7:::

А если на сервере вообще хотим запретить авторизацию по паролям, выставляем параметр в /etc/ssh/sshd_config:

PasswordAuthentication no
PermitEmptyPasswords no

Проверка

Запускаем putty и идем на вкладку «Connection -> Data» и вводим логин, под которым будем авторизовываться: putty1

Затем укажем putty где лежит приватный ключ. Для этого идем на вкладку «Connection -> SSH -> Auth» и выбираем наш ключ: putty2

 

А дальше подключаемся по старинке =)

Profit!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)