Пользоваться ключами с passphrase. Т.е., нужно будет вводить её один раз, потом менеджер (ssh-agent) запомнит её до следующей перезагрузки.
Менять порт SSH-сервера на нестандартный.
Прописывать AllowUsers в настройках, чтобы нельзя было заходить под "случайно" заведённым пользователем.
Прописывать настройки в ~/.ssh/config
Теперь рассмотрим подробнее, для начинающих, на примере Debian/Ubuntu:
Часть первая, на сервере:
Если у нас Debian, то лучше сразу установить sudo:
su -c "apt-get install sudo"
и добавить себя в группу sudo:
su -c "adduser ваш_логин sudo"
Перед установкой, обновляем информацию о пакетах:
sudo apt-get update
Устанавливаем ssh-сервер, чтобы к нему можно было подключаться:
sudo apt-get install openssh-server
Выбираем редактор по-умолчанию (если не делали этого ранее):
sudo update-alternatives --config editor
Теперь нужно определиться с тем, какой у нас логин: даём команду
whoami
(если в результате видим root - значит, нужно искать свой логин каким-нибудь другим путём).
Редактируем файл настроек ssh-сервера:
sudo editor /etc/ssh/sshd_config
Добавляем строчки с настройками. Первым делом, меняем номер порта, который будет слушать SSH-сервер. Это нужно, чтобы многочисленные вирусы круглыми сутками не подбирали пароль:
Port 19
Теперь прописываем список логинов пользователей, которым можно заходить с помощью SSH (если нужно разрешить вход кому-то ещё - дописывайте логин через пробел):
AllowUsers ваш_логин
Просим ssh-сервер перечитать настройки:
sudo service ssh reload
Если эта команда ничего после себя не выдала - значит сервер мы более-менее настроили.
Часть вторая, на десктопе.
Следующие команды выполняем не на сервере, а на том компьютере, с которого будет получать доступ.
Убеждаемся, что мы не root:
whoami
Если видим "root", значит запускаем обычный терминал (Приложения -> Стандартные -> Терминал) и повторяем этот пункт.
Убеждаемся, что у нас ещё нет ssh-ключей:
ls -l ~/.ssh
В выводе не должно быть файлов "identity", "id_rsa", "id_dsa" или "id_ecdsa". Возможно, вы даже получите сообщение об ошибке. Всё нормально, у вас ещё нет ssh-ключей.
Создаём ssh-ключи:
ssh-keygen -C ваш_комментарий
В качестве комментария, принято использовать e-mail или связку логин@имя_компьютера, на котором генерировали ключи.
В ответ на "Enter file in which to save the key" просто нажимаем [Enter], А вот на "Enter passphrase" вводим свой самый лучший пароль, хороший и надёжный. Что-нибудь типа queafWodEis5. На "Enter same passphrase again" повторяем пароль.
Всё, ключи готовы! Теперь редактируем файл настроек ssh:
editor ~/.ssh/config
Вписываем в него:
Host ip-адрес-сервера
Port 19
User ваш_логин_на_сервере
Если имя пользователя на сервере и на вашем компьютере совпадают, то строчку с логином не пишем.
Теперь копируем публичную часть ключа на сервер:
ssh-copy-id ip-адрес-сервера
Вводим пароль от сервера (больше он нам для входа не понадобится). Если видим "Now try logging into the machine...", значит всё в порядке, ключ скопирован на сервер в /home/ваш_логин/.ssh/authorized_keys
Ура! Теперь, когда вы будете пытаться войти на сервер с помощью ssh, в первую очередь будут использованы ssh-ключи, и если не получится, то обычный пароль.
Если компьютер, с которого вы будете заходить на сервер, имеет постоянный ip-адрес, то на сервере в файле /home/ваш_логин/.ssh/authorized_keys можно указать этот ip-адрес перед ключём, и тогда этот ключ будет действительным только с этого адреса: