Установка сервера SSH
Установим сервер SSH следующей командой (в Ubuntu):
sudo aptitude install openssh-client
Настройка сервера SSH
Вся конфигурация сервера производиться изменением файла /etc/ssh/sshd_config. По умолчанию клиент настраивается на вторую версию протокола, слушает порт 22 (стандартный для SSH) и разрешает вход root'a. В большинстве случаев править этот файл не требуется, но всё-таки иногда возникает необходимость его изменить.
Сначала сделаем резервную копию файла конфигурации:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
Откроем его в редакторе mcedit:
sudo mcedit /etc/ssh/sshd_config
По структуре это обычный для UNIX файл настроек. Описание некоторых параметров:
Port - порт, по которому сервер будет ожидать входящего соединения. ListenAddress - указывает, какой интерфейс будет прослушиваться ssh. Protocol - позволяет выбрать версию протокола 1 или 2. Рекомендуется протокол 2. HostKey - Ключевые файлы для второй версии протокола SSH (rsa и dsa). PermitRootLogin - при значении yes разрешает вход суперпользователя по ssh. PermitEmptyPasswords - разрешить пустые пароли. Может пригодиться при проблемах аутентификации.
После изменений в файле настроек необходимо перезагрузить sshd:
sudo /etc/init.d/ssh restart
Установка клиента SSH
Следующей командой установим ssh-клиент:
sudo aptitude install openssh-client
Использование SSH-клиента
Подключение к ssh-серверу осуществляется командой ssh. В простейшем случае она выглядит так:
ssh IP_адрес_сервера
или
ssh Имя_сервера
При этом вход на сервер происходит от имени текущего пользователя по стандартному порту TCP 22. Для указания другого пользователя можно использовать ключ -l или знак @:
ssh -l Имя_пользователя IP_адрес_сервера
или
ssh Имя_пользователя@IP_адрес_сервера
Например, вход на сервер 10.0.4.21 от имени root:
ssh -l root 10.0.4.21 ssh root@10.0.4.21
Если на сервере используется нестандартный порт, то его можно указать после ключа -p:
ssh -p номер_порта IP_адрес_сервера
Монтирование удалённой файловой системы через SSHFS
Существует возможность подключить к клиентскому компьютеру файловую систему сервера SSH. Это бывает крайне удобно, например при копировании конфигурационных файлов на новый сервер.
Для начала установим sshfs:
sudo aptitude install sshfs
Монтирование производиться следующей командой:
sshfs remotehost:/путь/к/удаленной_директории /локальная/директория
Где remotehost - имя удаленного хоста или его ip-адрес, /путь/к/удаленной_директории - удаленая директория, которую необходимо примонтировать, /локальная/директория - это точка монтирования удаленной папки. При этом монтирование происходит от имени текущего локального пользователя.
Можно указать имя пользователя в явном виде:
sshfs remoteuser@remotehost:/путь/к/удаленной_директории /локальная/директория
Где remoteuser - имя удаленного пользователя.
Для отмонтирования удаленной директории используется команда:
fusermount -u /локальная/директория
Авторизация по SSH с помощью ключей
- На клиенте создайте ssh-ключ (и, если у вас его нет, файл ~/.ssh/id_dsa), при помощи команды (следуйте указаниям команды):
ssh-keygen -tdsa
- Содержимое файла с публичным ключом (~/.ssh/id_dsa.pub) скопируйте в конец файла ~/.ssh/authorized_keys2 на сервере. Если такого файла нет, то его необходимо создать.
- Если вы хотите заменить (убрать) пароль на ключ, то воспользуйтесь командой
ssh-keygen -tdsa -p