Научиться использовать удаленный доступ к серверу Linux по протоколу SSH.
Для начала работы вам необходимо:
Данную лабораторную работу можно выполнять с помощью:
Далее в тексте это приложение будет называться терминал.
В любом терминале работает автодополнение. Его использвание позволяет ускорить ввод имен файлов и каталогов, а также исключить ошибки в их написании. Чтобы использовать автодополнение введите первые несколько символов имени файла, а затем один или несколько раз нажмите клавишу Tab.
Откройте терминал
Проверьте доступность сервера используя команду ping
ping <адрес сервера>
Перейдите в каталог куда скачали файл с приватным ключом. По умолчанию терминал открывается в домашнем каталоге пользователя, обычно каталог для скачивания называется Downloads:
cd Downloads
Команда cd (сокращение от change directory) изменяет текущий каталог. Помните что терминал в Linux и Mac OS X чувствителен к регистру символов.
Для того чтобы проверить текущий каталог используйте команду pwd (сокращение от path to working directory).
Помните, что в Windows разделителем каталогов является символ \, а во всех остальных ОС (а также в Git Bash) — символ /.
Также нужно помнить, что в Windows полный путь должен начинаться с буквы диска (например C:), а во всех остальных ОС (а также в Git Bash) — нет.
Поэтому полный путь к каталогу может выглядеть так:
C:\Users\Student\Downloads/C/Users/Student/Downloads/home/student/DownloadsУбедитесь, что файл с ключом присутствует в текущем каталоге (в ряде случаев вместо ls используется команда dir):
ls <имя файла приватного ключа>
Если файл присутствует, то должно отобразиться имя файла без сообщий об ошибке. Если сообщение об ошибке есть — перепроверьте каталог и имя файла приватного ключа.
Команда ls (сокращение от list) отображает список файлов в текущем каталоге.
В Mac OS X / Linux у нее есть следующие аргументы:
-a либо --all — отображает все файлы включая те, названия которых начинаются с точки (по умолчанию они считаются скрытыми)-l — выводит информацию в виде таблицы (т.н. длинный формат)Команда ls позволяет комбинировать их (т.е. можно писать ls -la или ls -al). Также команда ls имеет и другие аргументы. Чтобы увидеть полный список используйте ключ --help.
Подключитесь к серверу с клиента SSH:
ssh -i <приватный ключ> <логин пользователя>@<адрес сервера>
Команда ssh (сокращение от secure shell) — позволяет:
Команда ssh может аутентифицировать пользователей с помощью логина и пароля, а также с помощью ключей асимметричного шифрования (с помощью алгоритмов RSA, DSA, ECDSA, EdDSA и др.). Аутентификация с помощью ключей асимметричного шифрования позволяет защитится от перебора пароля методом грубой силы и значительно повысить степень безопасности удаленного доступа к серверам.
Ключ -i используется для указания приватного ключа асимметричного шифрования.
При подключении нужно указать логин (до символа @) и адрес сервера (после символа @).
Создайте собственного пользователя:
sudo useradd -m -s /bin/bash <имя пользователя>
команда sudo (сокращение от superuser do) — позволяет запустить команду от имени другого пользователя (например от имени админа, т.е. root)
команда useradd — создает нового пользователя
ключ -m — создает домашний каталог пользователя
ключ -s — задает путь к оболочке (/bin/bash — это стандартная оболочка в Linux)
Запустите оболочку от имени созданного пользователя:
sudo -i -u <имя пользователя>
ключ -i у команды sudo позволяет запустить интерактивный сеанс работы
ключ -u у команды sudo указывает имя пользователя от имени которого нужно запустить команду (или сеанс работы)
Создайте каталог .ssh
mkdir .ssh
Откройте новый терминал на локальном компьютере и сгенерируйте пару ключей асимметричного шифрования:
ssh-keygen -f <имя ключа>
команда ssh-keygen — генерирует ключи асимметричного шифрования
ключ -f позволяет задать имя файла приватного ключа
ключ -C задает комментарий
В результате выполнения команды будут создана пара ключей (приватный и публичный ключи) асимметричного шифрования. Публичный ключ записывается в файл с расширением .pub.
Выведите содержание публичного ключа в терминал:
для Mac OS X / Linux / Git Bash:
cat <файл публичного ключа>
для командной строки Windows:
type <файл публичного ключа>
для Windows Powershell:
Get-Content <файл публичного ключа>
Аккуратно выделите содержимое публичного ключа (должно начинаться на ssh- заканчиваться на комментарий) без пробелов по краям.
На сервере откройте в текстовом редакторе файл ~/.ssh/authorized_keys:
nano ~/.ssh/authorized_keys
и добавьте строку с публичным ключом.
Закройте текстовый редактор nano (для этого нажмите Ctrl+X) и сохраните изменения.
Подключитесь к серверу под именем вновь созданного пользователя с помощью закрытого ключа
Сделайте скриншот окна терминала так чтобы была видна команда подключения и её результат.
Скопируйте произвольный файл с локального компьютера на сервер
Для этого на локальном компьютере в терминале выполните:
scp -i <приватный ключ> <имя файла источника> <имя пользователя>@<адрес сервера>:<имя файла приёмника>
команда scp (сокращение от secure copy) — копирование файлов по протоколу SSH.
Сделайте скриншот окна терминала так чтобы была видна команда копирования и её результат.
Скопируйте произвольный файл с сервера на локальный компьютер
Для этого на локальном компьютере в терминале выполните:
scp -i <приватный ключ> <имя пользователя>@<адрес сервера>:<имя файла источника> <имя файла приёмника>
Сделайте скриншот окна терминала так чтобы была видна команда копирования и её результат.
Для подтверждения выполнения лабораторной работы отправьте созданные скриншоты преподавателю.
Данное задание не обязательно к выполнению.
Установите на локальный компьютер программу Filezilla и попробуйте подключиться к серверу по SSH (порт 22) под новым пользователем которого вы создали. Проверьте как происходит копирование файлов в обеих направлениях с помощью этой программы.