Это старая версия документа!
Содержание
OpenSSH
О OpenSSH
OpenSSH (Open Secure Shell - Открытая безопасная оболочка) - Набор программ, предоставляющих шифрование сеансов связи по компьютерным сетям с использованием протокола SSH.
Установка OpenSSH
Устанавливаем OpenSSH:
sudo apt install openssh-client openssh-server openssh-sftp-server
Подключение по SSH
Подключиться к серверу:
ssh user@host
- user - имя пользователя на удаленном сервере
- host - IP-адрес или доменное имя удаленного сервера
Подключиться к серверу по нестандартному порту, используем опцию -p:
ssh -p 0000 user@host Или ssh user@host -p 0000
Копирование файлов и каталогов через SSH
С локального ПК на удалённый сервер
Скопировать файл:
scp файл.txt user@host:/путь/к/каталогу
Скопировать каталог, используем опцию -r:
scp -r каталог user@host:/путь/к/каталогу
Скопировать файл по нестандартному порту, используем опцию -P:
scp -P 0000 файл.txt user@host:/путь/к/каталогу
Скопировать каталог по нестандартному порту, используем опции -P -r:
scp -P 0000 -r каталог user@host:/путь/к/каталогу
С удалённого сервера на локальный ПК
Скопировать файл:
scp user@host:/путь/к/файлу.txt /локальный/каталог
Скопировать каталог, используем опцию -r:
scp -r user@host:/путь/к/каталогу /локальный/каталог
Скопировать файл по нестандартному порту, используем опцию -P:
scp -P 0000 user@host:/путь/к/файлу.txt /локальный/каталог
Скопировать каталог по нестандартному порту, используем опции -P -r:
scp -P 0000 -r user@host:/путь/к/каталогу /локальный/каталог
С одного сервера на другой
Скопировать файл:
scp user1@host:/путь/к/файлу.txt user2@host:/сервер2/каталог
Скопировать каталог, используем опцию -r:
scp -r user1@host:/путь/к/каталогу user2@host:/сервер2/каталог
Скопировать файл по нестандартному порту, используем опцию -P:
scp -P 0000 user1@host:/путь/к/файлу.txt user2@host:/сервер2/каталог
Скопировать каталог по нестандартному порту, используем опции -P -r:
scp -P 0000 -r user1@host:/путь/к/каталогу user2@host:/сервер2/каталог
Важные нюансы
Авторизация:
При выполнении команды система запросит пароль сначала для первого сервера, а затем для второго.
Как передаются данные?
Данные будут идти по цепочке: Сервер А ➔ Ваш компьютер (как посредник) ➔ Сервер Б.
Выполнение команд без входа в интерактивную сессию
Выполнить команду(ы):
ssh user@host "ls -lh" ssh user@host "free -mh"
Настройка OpenSSH
Настраиваем конфиг sshd_config:
sudo nano /etc/ssh/sshd_config
Меняем стандартный порт на свой
Находим строку #Port 22:
Раскомментируем строку #Port 22. Где Port 22 меняем на свой.
Пример: Port 0000.
Обращаем внимание: Если включён Межсетевой экран, разрешите порт для подключения
sudo ufw allow 0000
Запрет входа по SSH для Root
Найдите строку PermitRootLogin.
Раскомментируйте строку PermitRootLogin yes (если она закомментирована)
Измените её значение с yes на no.
Запрет входа по паролю
Если вы используйте SSH-ключи для авторизации, то вход по паролю можно отключить.
Найдите строку PasswordAuthentication.
Измените её значение с yes на no.
Сохраняем файл.
Перезагружаем SSH:
sudo systemctl restart sshd
Подключаемся:
ssh root@localhost -p 0000
Генерация SSH ключей
Создаём пару ключей (По умолчанию):
ssh-keygen
Создаём пару ключей RSA:
ssh-keygen -t rsa -b 4096
Опции ssh-keygen
- -t - указывает тип шифрования, который будет использоваться при генерации ключей
- -b - указывает длину ключа в битах
Передаём открытый SSH ключ на сервер:
Создаём каталог .ssh, если он не создан:
mkdir .ssh
Добавляем в файл authorized_keys открытый ключ:
nano .ssh/authorized_keys
Сохраняем файл.
Готово.
