Основы SSH на примере Ubuntu 16.04.5 - gshaposhnikov/Manuals-Wiki GitHub Wiki
OpenSSH в Ubuntu
Установка OpenSSH-server
user@server:~$ sudo apt install openssh-server
Настройка SSH в Ubuntu
Для обеспечения безопасности ssh-соединения, выполним настройку конфигурационного файла. Конфигурационный файл ssh-сервера расположен /etc/ssh/sshd_config .
user@server:~$ sudo vim /etc/ssh/sshd_config
Резервное копирование файла.
Перед внесением изменений в конфигурационный файл, сделаем его резервную копию:
user@server:~$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.defaults
Редактирование конфигурационного файла.
Для редактирования конфигурационного файла, выполняем команду:
user@server:~$ sudo vi /etc/ssh/sshd_config
Для защиты от ботов желательно изменить порт, на котором работает ssh.
Найдите в конфигурационном файле строчку Port и замените ее значение на любое число, например, Port 2222:
Секция:
What ports, IPs and protocols we listen for Port 22222
По умолчанию вход от имени суперпользователя включен, рекомендуется отключить такую возможность. Для этого найдите строчку PermitRootLogin и замените ее значение на no:
Секция:
Authentication: LoginGraceTime 120 PermitRootLogin no StrictModes yes
Чтобы разрешить аутентификацию по ключу, а не по паролю найдите строку PubkeyAuthentication и убедитесь, что ее значение yes.
Секция:
Authentication: LoginGraceTime 120 PermitRootLogin no StrictModes yes
RSAAuthentication yes PubkeyAuthentication yes
После завершения настроек, сохраним конфигурационный файл, для этого нажимаем: Esc и ZZ
Рестарт сервиса ssh
Перезапускаем службу ssd:
user@server:~$ sudo systemctl restart ssh
Настройка брандмауэра.
Для настройки порта в брандмауэре, выполним команду (подключение через интернет):
user@server:~$ sudo ufw allow 2222
если вы не изменяли порт по умолчанию
user@server:~$ sudo ufw allow 22
Настройка ssh-servera Ubuntu 16.05 полностью завершена.
Варианты подключения к серверу:
Для подключения к серверу на порт 22:
user@server:~$ sudo ssh user@ip_адрес
Введите пароль учётной записи через которую выполняете подключение.
Для подключения к серверу на порт 2222:
user@server:~$ sudo ssh -p 2222 user@ip_адрес
Введите пароль учётной записи через которую выполняете подключение.
##Генерация ключей: Для генерации ключей выполните команду:
user@server:~$ sudo ssh-keygen
Этот ключ можно усилить паролем. (Пароль спрашивается однократно, хранится некоторое время.) Пароль можно не вводить.
Для смены пароля выполните команду:
user@server:~$ sudo ssh-keygen -p
После генерации, получаем 2 ключа:
Открытый ключ. (Публичный ключ, который копируют на машины к которым нужно выполнить подключение.) Клиент
Открытый ключ. Каталог по умолчанию ~/.ssh/id_rsa.pub
Закрытый ключ. (Приватный ключ, хранимый только на сервере, проверка подлинности сервера). Сервер
Никто из посторонних не должен получить этот ключ! Закрытый ключ. Каталог по умолчанию ~/.ssh/id_rsa Ключ сервера хранится в /etc/ssh/ssh_host_rsa_key и /etc/ssh/ssh_host_rsa_key.pub
Если у вас ssh на нестандартном порту, то ssh-copy-id требует одинарных скобок:
user@server:~$ sudo ssh-copy-id '-p 2222 user@server'
После первого подключения к серверу, ключ сохраняется в директории:
~/.ssh/known_hosts
После переустановки сервера нужно вновь генерировать ключи! Иначе ssh сообщит о подделке ключа!
Удалить ключ сервера можно командой:
user@server:~$ sudo ssh-keygen -R server
Обмен файлами по соединению ssh:
Для передачи файла с одного компьютера на другой, выполните команду:
user@server:~$ scp /home/user/Рабочий\ стол/Fail2Ban.sh user@ip_адрес:/home/user
или
user@server:~$ scp /home/user/Desktop/Fail2Ban.sh user@ip_адрес:/home/user
Для скачивания скрипта, выполните команды:
user@server:~$ scp user@ip_адрес_компьютера_с_которого_скачиваем:/home/user/name_script.sh /home/user (/home/user директория куда файл будет скопирован)
Проброс X-сессии
Графическое представление удаленного рабочего стола.
Для проброса Х-сессии выполните команду в терминале:
user@server:~$ sudo ssh -X user@ip_адрес
если вы изменили стандартный порт
user@server:~$ sudo ssh -X -p2222 user@server