SSH
Описание
Соединение по SSH подразумевает обмен ключами
Пользователь с помощью ssh-keygen генерирует два ключа: приватный и публичный
Приватный ключ пользователь хранит у себя
Публичный ключ отдается серверу через ssh-copy-id
При установке SSH сессии от сервера формируется сообщение, зашифрованное публичным ключом пользователя
Пользователь расшифровывает это сообщение своим приватным ключом и отправляет ответное сообщение серверу, устанавливая соединение
Факт того, что приватным ключом дешифровано сообщение подтверждает легитимность сессии и ее участников
Настройка SSH
ssh-keygen создает пару приватного\публичного ключа
Установка пароля на приватный ключ повышает безопасность, но снижает удобство пользования
ssh-copy-id копирует публичный ключ на целевой сервер
ssh-agent /bin/bash позволяет хранить в кэше шелла пароль приватного ключа
ssh-add добавляет текущий пароль в кэш
Опции SSH
Опции сервера хранятся в /etc/ssh/sshd_config
Опции клиента хранятся в /etc/ssh/ssh_config
Можно поменять порт (обычно 22)
Опция PermitRootLogin - позволяет логиниться по рут правами, по-умолчанию включена
Опция PubkeyAuthentication - аутентификация по публичному ключу, по-умолчанию включена
Опция PasswordAuthentication - аутентификация по паролю
Опция X11Forwarding - передача графического интерфейса
Настройка sshd требует перезагрузки демона
systemctl restart sshd
Копирование файлов
При помощи sshd можно передавать файлы по сети, обеспечивая безопасность этой передачи
Для этого используется утилита scp
scp file1 file2 student@remoteserver:/home/student скопирует файлы на удаленный сервер
scp -r root@remoteserver:/tmp/files . - копирование файлов с удаленного сервера в текущую директорию рекурсивно
sftp обеспечивает работу FTP клиента при помощи SSH
sftp 1.1.1.1 - подключение к серверу
put /my/file - выгрузит файл на FTP сервер
get /your/file - загрузит файл с FTP сервера
exit закрывает sftp сессию
Синхронизация файлов
rsync использует sshd для синхронизации файлов
Если искомый и конечный файлы уже созданы, то rsync будет только синхронизировать разность
rsync имеет множество опций, базовые из которых:
-r - рекурсивно синхронизировать все дерево директории
-l - синхронизация символьных ссылок
-p - сохраняет символьные ссылки
-n - тест перед синхронизацией
-a - режим архивирования, равнозначный -rlptgoD
-A - режим архивирования с синхронизацией ACL
-X - синхронизация контекста SELinux
rsync -ar root@serverip:/etc /tmp - синхронизация папки /etc удаленной машины в папку /tmp локальной машины
Last updated
Was this helpful?