Авторизация по ключу

Авторизация по паре ключей
В конфигурационных файлах ничего раскомментировать не требуется. В том числе строку #AuthorizedKeysFile    .ssh/authorized_keys в /etc/ssh/sshd_config

Для активации входа по паре ключей нужно только две вещи
 * 1) публичный ключ в нужном месте в виде файла и чтобы он имел правильные права
 * 2) пустой пароль.

Очистить пароль можно просто vipw ИЛИ вручную в /etc/master.passwd ИЛИи запустив от root команду chpass имя и удалялить символы состовляющие пароль.

Копирование публичного ключа (по умолчанию носит название id_dsa). У нового пользователя, который не разу не запускал клиент директории ~/.ssh нет и нужно создать.

КЛюч должен быть в определенном формате (другие надо пихать через ssh-keygen) или править руками, убирая переносы и добавляя в начале тип ключа. чтобы из

Если хочется хранить ключи в другом месте, то надо использовать строку вида. %u заменяется на имя пользователя AuthorizedKeysFile     /etc/ssh/keys/%u/authorized_keys

Ключ в формате OpenSSH в Putty
Unable to use key file c:\file (OpenSSH SSH-2 private key)

Import - ввод пароля - save private file

Конвертация ключа из PUTTY-формата в openSSH
Сам ключ одинаковый, но форматирован он по-разному.Это почему-то делает ключ -i, а в -f указывается файл с путти-формате

ssh-keygen -i -f filename > authorized_keys

Интерактивная команда. Нудно указать абсолютный или относительный путь. ssh-keygen -i Enter file in which the key is (/root/.ssh/id_rsa): /home/myth043/.ssh/authorized_keys.copy

Нормальный формат ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAABAQCeWiVWb9VUtm9t5lVfX9CpFYgOoT41DsB8Fh+EoA6ZuzVFoH7AVAyZJbd38U0HqEUmRyYDI0Pkt2WnXZPOFsxGlDE4nG7+/mqa7rJIfEneLiG0tqNZVSnjpx9ReeFG23kgzKW8YX2Ml5ZJdI3A49dwu+/LZxUQSeCBwllQiD+rwfnBSQ9O9+IeOqXiH2KxPwKhxd2+MIb0nw50Tz8mm+YgG0UTwd0J3jWpkD8D4Q7wrNal6+t8GibJDsSSm9A/Rhx9ui3ciTcXq92BLvfO3imlNXWgd3g0sjy0yiIavFYsnGHDvszFfcQr/DEPOeKecn

Фомат putty BEGIN SSH2 PUBLIC KEY Comment: "[2048-bit rsa, fff@dddddd, Wed Oct 28 2009 13:\ 22:22]" AAAAB3NzaC1yc2EAAAADAQABAAABAQCeWiVWb9VUtm9t5lVfX9CpFYgOoT41DsB8Fh+EoA 6ZuzVFoH7AVAyZJbd38U0HqEUmRyYDI0Pkt2WnXZPOFsxGlDE4nG7+/mqa7rJIfEneLiG0 tqNvWa50hwmkly8maJhfgvqUXZVSnjpx9ReeFG23kgzKW8YX2Ml5ZJdI3A49dwu+/LZxUQ END SSH2 PUBLIC KEY

получить ключ ssh-rsa 3NzaC1yc2EAAAADAQABAAABAQCeWiVWb9VUtm9t5lVfX9CpFYgOoT41DsB8Fh+EoA6ZuzVFoH7AVAyZJbd38U0HqEUmRyYDI0Pkt2WnXZPOFsxGlDE4nG7+/mqa7rJIfEneLiG0tqNvWa50hwmkly8maJhfgv

Создать директорию mkdir /home/leksey/.ssh/

Переименовать файл, без этого работать не будет mv id_dsa.pub /home/leksey/.ssh/authorized_keys

Выставить владельца. Без этого подключиться не удастся. chown -R leksey:leksey .ssh/

Обнулить пароль у пользователя chpass leksey И удалить тот длинный хеш, который в поле Password:

Диагностика
less /var/log/auth.log Mar 9 02:42:46 snickers sshd[68815]: Authentication refused: bad ownership or modes for file /usr/home/backup/.ssh/authorized_keys

less /var/log/auth.log Обычная авторизация по паролю "Sep 4 18:33:45 nonename sshd[89292]: error: PAM: authentication error for lke from dc.agava.net" Успешная авторизация по ключу "Sep 4 18:38:53 nonename sshd[89314]: Accepted publickey for lke from 44.245.21.2 port 50121 ssh"

Со стороны клиента выглядит следующим образом:

Обычная авторизация по паролю ssh -p 814 -i .ssh/id_dsa mars Password: Password: Password:

Когда сервер запрашивает авторизацию по паре ключей ssh -p 814 -i .ssh/id_dsa mars "Enter passphrase for key '.ssh/id_dsa':"

Только по ключу -o PreferredAuthentications=publickey

Выключение интерактивной авторизации
ChallengeResponseAuthentication no
 * 1) Change to no to disable PAM authentication

до отключения debug1: Authentications that can continue: publickey,keyboard-interactive debug1: Next authentication method: keyboard-interactive

после отключения debug1: Offering public key: /home/lke/.ssh/id_dsa debug1: Authentications that can continue: publickey debug1: No more authentication methods to try.

Генерация ключей в Unix
Какой тип выбирать - это вопрос, но и тот который по умолчанию вполне устроит. Но по каким-то причинам рекомендуют DSA. По умолчанию ключи сохраняются в .ssh ssh-keygen -f name_of_key -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/root/.ssh/id_dsa):  Enter passphrase (empty for no passphrase):  Enter same passphrase again:  Your identification has been saved in /root/.ssh/id_dsa. Your public key has been saved in /root/.ssh/id_dsa.pub. The key fingerprint is: c7:42:f3:6b:dd:29:07:59:5e:96:04:2d:0d:a0:78:25 root@mars.tushino.com

Запрашиваемый пароль предназначен для защиты приватного ключа. Разрешается его не указывать.

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

Для переноса ключа зачем-то еще можно использовать ssh-keygen -i -f /root/.ssh/root > /root/.ssh/authorized_keys

Публичный ключ выглядит следующим образом. Последосвательность символов на одной строке без переноса. В конце адрес сформированный из имени пользователя и домена. Как это при сборке ядра. Перед адресом - два символа равно (терминатор?)  ssh-dss AAAAB3NzaC1kc3MAAACBALOIgT03U6/5H9fSnfxNfUHNNzP3akCrBYx34EVLkmUtfgm0AbwJ h8a7oL4kfs/Iukw5LM0xTQanFb8qYzliLF0b8ndlstnsc8dBh2/1uqM7xJ57a4Wj92+ebZUK30ILO5B+ Pqq153e9US0ET7pcxiMJZBgHWGsZjAmQHo/hna6bAAAAFQCnAIFzHkJYyQBFWFydQr51CGLmEQAAAIBw udru9PMNxiC9GdlDCSy927Cmt6zZOmmExMP1DmXdp3/2GtSYK823JpowKa9sZae4/VdjtkONDG8sH36Z 9GInniiep7GGTQy+GfgpsP4kNk+0REC5RtmW9055WJfndRpJv8rYCay02NcL9n9ws/hVnz+AqkaMliqT vSLQx9EdPwAAAIB5pBXYIj5cJJD+2KpnLgBOn9pqS0v7XWir3e8nLkaLbmwNOQ5csVSS4GljI4X3SfMU ByuT8pdwBU5/DzeZm6z5E9Yudaog2qg4GkKdHPrk4mzujmElMzVG+F/ONghvyW69bTstsW7AicuNu/cm 3be0o/0jYQpcNqlsH+SzdEew/A== root@company.net 

Генерация ключей MS Windows
Sshd/windows

Выбор способа авторизации
Чтобы отключить авторизацию по паролю (?), а оставить только ключи: PasswordAuthentication no и ChallengeResponseAuthentication yes

Однократный ввод пароля
В том случае когда приватный ключ защищен паролем

В MS Windows и Putty это реализуется посредством Pageant.

Лог-файл
/var/log/auth.log

Обычная авторизация по паролю при использовании winscp  Apr 8 16:36:31 yally sshd[94352]: Accepted keyboard-interactive/pam for wahookka from 192.168.0.13 port 2574 ssh2 Apr 8 16:36:31 yally sshd[94355]: subsystem request for sftp 

SFTP
В выводе команды w такие пользователи отсутствуют

Запрещение аутентификации по паролю
На сервере ssh в /etc/openssh/sshd_config проставить PasswordAuthentication no и убедиться в наличии PermitRootLogin no RhostsAuthentication no  IgnoreRhosts yes

Перезапустить сервис sshd.