Вкратце обрисую схему.
- генерируется пара ключей
- на сервер помещаем открытый ключ
- подключаемся к серверу с секретным ключом (и putty и ssh это умеют делать)
- для большего эффекта защиты, отключаем возможность интерактивного (с использованием логина и пароля) входа в систему по ssh
http://blackdiv.livejournal.com/38635.html — здесь доступен достаточно годный мануал по тому, как настроить доступ с использованием ключей и без ввода пароля. Поэтому, процедуру настройки сервера и клиента здесь описывать не буду, чтобы не множить энтропию.
Если работаем под Windows и используете putty, то важно не забывать одну особенность — ключи, генерированные утилитой puttygen, не совместимы с OpenSSH. Поэтому, их нужно конвертировать. У той же утилиты puttygen присутствует возможность конвертировать ключ.
http://leadingedgescripts.co.uk/ Здесь более подробно описана задача и решение.
В общем, нужно скачать утилиту puttygen.exe, импортировать секретный ключ, перейти в меню Conversions и выбрать Export key as OpenSSH.
Так же, чтобы ssh-клиент не ругался устанавливаем права доступа к файлам ключей командой
sudo chmod 700 my_key.sshКоманда подключения будет выглядеть следующим образом
ssh −2 username@192.168.1.10 -i my_key.ssh -X
(ключ -X используется, если нужет X11 Forwarding over ssh)