LX2 Использование удаленного доступа по SSH

Лекция: Удаленная работа по SSH

Мы узнаем, как и зачем подключаться к удаленной машине по сети, какие для этого существуют программы и протоколы.

Презентация

Смотреть слайды к этому занятию.

Дополнительные материалы





Практика: SSH

На практике узнаем, как установить и настроить все необходимое для удаленного доступа, научимся подключаться к машине по паролю, затем научимся использовать ключи.

Видео занятия

Цель работы

Продемонстрировать умение работать с командной строкой Linux с удаленной машиной по протоколу SSH.

Основное задание

  1. Убедитесь, что на виртуальной машине установлен и запущен SSH-сервер.
  2. В программе Putty (или любом другом SSH-клиенте), запущенной на хост-машине подключаемся по SSH на нужный IP к виртуальной машине и далее работаем с системой только через SSH
  3. Отображаем содержимое /etc/apt/sources.list, используя команду cat
  4. С её же помощью и символа “>” создаем файл в домашней директории пользователя.
  5. Отображаем список процессов.
  6. Запускаем мониторинг ресурсов системы.
  7. Обновляем кэш менеджера пакетов apt-get.
  8. Установите удаленно какой-либо пакет из репозитория на ваш выбор.
  9. Выполните копирование файла по протоколу SSH с одного компьютера на другой.
  10. Перезагрузить удаленный сервер через SSH.

Методические указания

ssh-agent

При работе с ключами возможны две неудобные ситуации:

  1. Если при созданиия ключа вы указали passphrase (пароль для ключа), то вам придется вводить пароль при каждом подключении.
  2. Если у вас есть несколько ключей для разных целей, то при соединении по ssh придется указывать нужный ключ вручную

ssh-agent решает эти проблемы. Этот агент аутентификации (authentication agent) работает на фоне в *nix-системах. В зависимости от системы, вам, возможно, придется установить и настроить его автозапуск самостоятельно.

Если добавить ключ к агенту, то:

  1. для него больше не будет спрашиваться passphrase
  2. не нужно будет вводить ключ вручную — он будет автоматически использован при соответствующем подключении

ssh-add /home/demo/.ssh/id_rsa добавит ключ id_rsa в запущенный в системе агент. Если у него есть passphrase, то агент попросит ввести его.

Если запустить ssh-add без аргументов, то будут добавлены ключи ~/.ssh/id_rsa, ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 и ~/.ssh/identity.

Список добавленных в агент ключей можно посмотреть командой ssh-add -L:

1
2
3
$ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC91r/+5WEQHcxVMrxpP9jKuONjlrnEHshfG3v/ab2NKDSljdskODOIsdhaaoDoiSADhAaoDISHasoiDiASisjadOHISDdKJDASHSidshIHDSIHDIAsdjasAs7XG/drBhi16zQ2e8VcLD7bVQS1Cpo0O1tP+93YQBvcIE02RltqVKYo7BlgCaJzpdowK8fHSzpfCYsEFjdjosOjfdsjdjkAJOKkKKHJHhaIiAiaihsiIoqkpqdmlnvnuuUSCaAS8aDhajiadiiAahhakKAKDHAKurmD08jnX9HfH/d15pLK/Glo1Su6iEOU3bW8k92QlY54pPFLKiNRPFuUryE5md7T /Users/demo/.ssh/some_key.pem
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsLC9WpSZ/9YpQ2z1FTSsORcP+ohzCdVjYaoc3C0fRnUbkp4SnvMHFTHNFFod0FhV0cQcOLvBsZAK/0tUPIXeDDFvYD70r5i0AsQbqA0k7gK3b3MP7tmnPxMHd607TI+1FMO54Yig0vnpZOgKmgCsxWq6tckwyLB91BlPiGxLBZiu5yPDIguEQCSnAwkF0vjqrNGsoHB4+fkj0USfjiifsjihf39hifSIHiJFHSijshfj39jfsjisfiisfiissr893IFsifijfsjSOIiAShadfhssU0q0JpjaDEWcMmYXmuz3xSnbhkueGLBXMU2zXDFDWCDSHq9/oRr29UAfVaHAMw== /Users/demo/.ssh/id_rsa

ssh-agent привязан к сессии. Поэтому, например, если перезагрузить компьютер, то ключи нужно будет добавлять в агент заново.

Форвардинг (проброс) ключей

Если вы подключились к удаленному серверу X, и с него хотите подключиться к другому серверу Y, например, чтобы сделать git pull с GitHub’а, то придется держать копию ваших ключей на сервере X.

Утилита ssh с флагом -A позволяет «пробросить» ключи с подключаемой машины в удаленную:

1
$ ssh -A ivan@52.307.149.244

Ключи, добавленные к агенту аутентификации (ssh-agent) станут доступными на удаленном сервере. При этом файлы-ключи физически не будут находиться на сервере.

Контрольные вопросы

  1. Для чего нужен протокол SSH?
  2. Почему этот протокол называют защищенным?
  3. Какая информация нужна для того, чтобы подключиться к удаленной машине?
  4. Из чего состоит пара ключей?
  5. Каковы рекомендуемые действия по безопасному использованию SSH?
  6. Как установить и настроить пакета OpenSSH в Linux и Windows?

Задания для самостоятельного выполнения

  1. Выполните настройку Вашего и виртуального компьютеров так, чтобы возможно было входить с одного на другой по открытому ключу, без явного запроса пароля, по протоколу SSH.
  2. Создайте файл в домашней директории локальной машины. Скопируйте его на удаленную машину при помощи утилиты scp. Удалите исходный файл. Скопируйте файл обратно.
  3. Измените порт по умолчанию на удаленной машине для сервера SSH. Перезапустите сервер. Проверьте корректность подключения.
  4. Сохраните свое подключение на локальной машине при помощи конфигурационного файла. Проверьте работоспособность подключения по имени.
  5. (*) Проанализировать сравнительную скорость ssh-соединения, выполнив следующие замеры:
    1. Выполнить передачу файла через FTP с помощью утилиты wget. Проанализировать проходящие пакеты с помощью утилиты tcpdump(-ХХ). Запомнить скорость передачи.
    2. Выполнить передачу через ssh. Проанализировать проходящие пакеты с помощью утилиты tcpdump(-ХХ). Запомнить скорость передачи. Сравнить передаваемые пакеты и скорости передачи данных.
    3. Включить сжатие ssh и повторить замер скорости. В каждом тесте анализировать результаты для файла состоящего из нулей и для файла состоящего из случайных последовательностей (dd if= /dev/urandom of=file ds=1M count=10), для текстового конфигурационного файла или бинарного файла.




Практика: Tmux

Нам предстоит освоить основные приемы работы с самой удобной и распространенной программой для удаленного администрирования - tmux. Мы научимся использовать ее при удаленной работе с машиной по протоколу ssh.

Видео занятия

Цель работы

Освоить основные приемы работы с программой tmux при удаленной работе с машиной по протоколу ssh.

Задания для выполнения

  1. Начните рабочую сессию.
  2. При необходимости установите программу tmux.
  3. Запустите программу tmux.
  4. Создайте новое окно. Назовите его window1.
  5. Запустите в первом окне программу htop. Назовите его htop.
  6. Второе окно разделите вертикально.
  7. Разделите одну из этих панелей горизонтально.
  8. Выйдите из одного из сеансов для того, чтобы закрыть соответствующую панель.
  9. Выйдите из tmux.
  10. Запустите tmux, указав имя новой сессии.
  11. Запустите htop.
  12. Отсоединитесь от сессии.
  13. Убедитесь, что процесс htop еще запущен.
  14. Выйдите из сессии.
  15. Начните сессию заново.
  16. Выведите список активных сессий.
  17. Подключитесь к той же сессии.

Контрольные вопросы

  1. Для чего применяется программа tmux?
  2. Будет ли выполняться процесс, запущенный в сеансе удаленного доступа после разъединения?

Задания для самостоятельного выполнения

  1. Создайте новую сессию tmux. Используйте ее для совместной работы нескольких пользователей на одной и той же удаленной машине.

Дополнительные материалы





Разделы:

Дата изменения: