Ходить на сервер без пароля — очень удобно. Идея состоит в том, что на локальном (клиентском) компьютере генерируется пара ключей — приватный и публичный. Публичный копируется на удаленный компьютер (сервер) и авторизация происходит с помощью них.
Итак, открываем консоль на клиентской машине и создаем пару ключей:
$ ssh-keygen -t rsa
Консоль спросит путь для сохранения (нажмем Enter, чтобы оставить дефолтный путь) и парольную фразу (passphrase) (вводить необязательно в таком случае тоже нажимаем Enter).
Generating public/private rsa key pair Enter file in which to save the key (/home/username/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
Важно! В случае утери парольной фразы восстановить ее не удастся.
Теперь в домашнем каталоге, в папке .ssh/ у нас появилось два файла — id_rsa (приватный ключ) и id_rsa.pub (публичный ключ). Для авторизации на удаленном сервере с помощью публичного ключа — нужно скопировать его туда. Сделать это можно командой
$ ssh-copy-id username@server
… где username — имя Вашего пользователя на удаленной машине, а server — ip адрес или имя удаленной машины. При копировании потребуется ввести пароль пользователя username от удаленной машины. После этого Ваш публичный ключ из локального файла ~/.ssh/id_rsa.pub будет добавлен в файл ~/.ssh/authorized_keys пользователя username удаленной машины.
Теперь можно авторизоваться на удаленном сервере не вводя пароль.
$ ssh username@server