Сгенерировать пару ключей
Первый шаг — это генерация пары ключей. Обычно это делается на клиентской машине.
Например, на вашем ноутбуке.
Основная команда ssh-keygen создаст 2048-битную пару RSA ключей. Для
большей надёжности можно добавить флаг -b 4096
Выполните
ssh-keygen -b 4096
Чтобы сгенерировать ключ в /home/$(whoami)/.ssh
или
sudo ssh-keygen -b 4096
Чтобы сгенерировать ключ в /home/root/.ssh
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Нужно придумать имя ключа.
Я назову ключ
andrei-key101
а сохранять буду в текущую директорию.
Enter file in which to save the key (/root/.ssh/id_rsa): andrei-key101
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Нужно два раза ввести пароль. Если он вам нужен. Обычно нет.
Your identification has been saved in andrei-key101
Your public key has been saved in andrei-key101.pub
The key fingerprint is:
SHA256:abcd/abcdefghijklmnopqrstuvwxyz1234567890ab root@urn-su
The key’s randomart image is:
+——-+
|=o oo++ |
|= oo o. = o |
|+ |
|Oo=o . . |
|B+.o S . |
|+o.o |
|+.0. . |
|o+= . E |
|+=oo. . . |
+———+
Ключи готовы. Я сохранил их в текущую директорию поэтому увижу их сделав ls
ls
andrei-key101 andrei-key101.pub
Важно помнить, что если вы генерируете ключ для другого пользователя нужно
позаботиться о правильных правах доступа к этому ключу.
Что такое команда chmod и для чего она нужна?
Команда chmod (изменить режим) предназначена для изменения прав пользователя, группы и других разрешений для файлов и папок, мы можем изменить права чтения, записи и выполнения для всех файлов и папок, которые мы хотим, кроме того, мы можем сделать Рекурсивное изменение определенной папки, таким образом, все файлы и папки внутри нее также будут затронуты этим изменением. Команда chmod доступна как в операционных системах Linux, так и в Unix, поэтому, если наш сервер основан на Unix, например FreeBSD, мы можем изменять права доступа к файлам и папкам так же, как мы делаем это в Debian или Ubuntu.
Синтаксис использования chmod следующий:
chmod права доступа к файлам / каталогам
Сначала мы выполним команду chmod, затем мы сможем включить различные модификаторы, например, «-R», чтобы сделать его рекурсивным для всех папок и файлов в одной папке, затем нам нужно будет установить новые разрешения, которые мы хотим применить, и, наконец, мы поместим абсолютный или относительный путь к файлу или папке, для которых мы хотим изменить разрешения.
Очень важная деталь заключается в том, что в некоторых случаях абсолютно необходимо запускать chmod с правами суперпользователя, поскольку только администратор операционной системы может изменять разрешения. Этого можно достичь, войдя в систему как root или напрямую используя популярную команду «sudo» для временного повышения суперпользователя с помощью команды для выполнения.
Файловый менеджер в терминале Linux
Если вы начинающий пользователь Linux, и вам пока не удается эффективно работать, используя исключительно текстовые команды терминала, то вы можете установить файловый менеджер. Например, можно установить Midnight Commander. Данный файловый менеджер работает непосредственно в терминале Linux и обеспечивает классический двухоконный интерфейс для работы с файлами и каталогами.
Ниже мы приводим команды, необходимые для установки Midnight Commander.
После установки программу Midnight Commander можно запускать при помощи короткой команды «mc».
Интерфейс программы Midnight Commander выглядит следующим образом:
Экран программы разделен на две части. В правой и левой части окна можно открыть разные каталоги и выполнять между ними копирование или перемещение файлов.
С помощью клавиш F1-F10 в Midnight Commander можно выполнять такие команды как:
- F1 – Help – Помощь.
- F2 – Menu – Меню программы.
- F3 – View – Просмотр.
- F4 – Edit – Редактирование.
- F5 – Copy – Копирование.
- F6 – RenMov – Переименование и перемещение.
- F7 – MkDir – Создание папок.
- F8 – Delete – Удаление.
- F9 – PullDn – Работа с выпадающим меню.
- F10 – Quit – Выход.
Как перейти в нужную папку в терминале Linux
Чтобы перейти в любую папку в терминале Linux нужно использовать команду « cd » (от англ. change directory). Для этого просто указываем команду « cd » и через пробел вводим путь к нужной папке. Например, для того чтобы перейти в корневой каталог файловой системы нужно ввести вот такую команду:
Аналогичным образом мы можем переходить и в другие папки. Вводим команду « cd » и путь к папке. Например, чтобы перейти в папку etc вводим вот такую команду:
Обратите внимание , при вводе названия папки можно использовать автоматическое дополнение. Для этого нужно ввести команду « cd », начать ввод имени папки и нажать на клавишу Tab
В результате система предложит правильное название и вам останется только нажать ввод. Также можно нажать клавишу Tab дважды и посмотреть список всех папок, которые находятся в текущем каталоге.
Также при навигации бывает очень полезной команда « pwd » (от англ. present working directory). Она позволяет узнать, в каком каталоге мы сейчас находимся.
Просто вводим « pwd » и получаем путь к текущему каталогу.
Директории для хранения данных
Во многих системах директория /root является стандартной директорией для хранения персональных данных и данных профиля пользователя root . В том случае, если ее не существует по умолчанию, администраторы могут создать ее самостоятельно.
Вы можете использовать директорию /srv для хранения данных, которые обрабатываются вашей системой . Спецификация FHS позволяет хранить в этой директории данные cvs, rsync, ftp и www. Кроме того, спецификация FHS подтверждает возможность использования таких административных имен для поддиректорий, как /srv/project55/ftp и /srv/sales/www.
В системах Sun Solaris (или Oracle Solaris) для этой цели используется директория /export .
Директория /mnt должна быть пустой и использоваться исключительно для создания временных точек монтирования файловых систем (в соответствии со спецификацией FHS).
Администраторы систем Unix и Linux обычно создают в данной директории множество поддиректорий, таких, как /mnt/something/. Вы, скорее всего, столкнетесь с системами с более чем одной директорией, созданной и/или смонтированной в рамках директории /mnt для работы с различными локальными и удаленными файловыми системами.
Приложения и пользователи должны использовать директорию /tmp для хранения временных данных при необходимости. Данные, хранимые в директории /tmp , могут в реальности храниться как на диске, так и в оперативной памяти. В обоих случаях обслуживание хранилища временных данных осуществляется средствами операционной системы. Никогда не используйте директорию /tmp для хранения данных, которые являются важными или которые вы желаете архивировать.
Директории в оперативной памяти
Файлы устройств из директории /dev выглядят как обычные файлы, но на самом деле не являются обычными файлами, размещенными на жестком диске. Директория /dev заполняется файлами в процессе определения устройств средствами ядра операционной системы.
Стандартные физические устройства
Помимо представления физических устройств, некоторые файлы устройств выполняют специальные функции. Эти специальные файлы устройств могут оказаться очень полезными.
Файлы устройств /dev/tty и /dev/pts
К примеру, файл устройства /dev/tty1 представляет терминал или консоль, соединенную с системой. (Не стоит ломать голову над точными значениями терминов ‘терминал’ или ‘консоль’, так как в данном случае имеется в виду интерфейс командной строки системы.) При вводе команд в эмуляторе терминала, поставляемом в составе такого графического окружения рабочего стола, как Gnome или KDE, ваш терминал будет представлен файлом устройства /dev/pts/1 (вместо числа 1 может использоваться другое число).
Файл устройства /dev/null
В Linux вы можете обнаружить и другие файлы специальных устройств, такие, как файл устройства /dev/null , которое может рассматриваться как черная дыра; хотя соответствующее устройство и имеет неограниченную емкость, после записи из него не могут быть прочитаны никакие данные. Говоря техническим языком, любые записанные на представленное файлом /dev/null устройство данные будут просто отброшены. Представленное файлом /dev/null устройство может быть использовано для отбрасывания ненужного вывода различных команд. Помните о том, что представленное файлом /dev/null устройство не является удачным местом для хранения ваших резервных копий данных .
Директория /proc и взаимодействие с ядром ОС
Большая часть файлов из директории /proc предназначена исключительно для чтения, причем для чтения некоторых из них требуются привилегии пользователя root; в некоторые файлы могут записываться данные, причем в директории /proc/sys таких файлов большинство. Давайте поговорим о некоторых файлах из директории /proc.
Директория /sys для работы с системой горячего подключения устройств ядра Linux 2.6
Директория /sys была создана в процессе разработки версии 2.6 ядра Linux. С момента выпуска версии 2.6 ядро Linux использует файловую систему sysfs для реализации механизма горячего подключения устройств, использующих шины usb и IEEE 1394 ( FireWire ). Обратитесь к страницам руководств udev(8) (данная подсистема пришла на смену подсистеме devfs ) и hotplug(8) для получения дополнительной информации (или посетите ресурс http://linux-hotplug.sourceforge.net/).
По существу, директория /sys содержит файлы с информацией об используемом аппаратном обеспечении.
Команды SMB в Linux
Доступны следующие интерактивные команды:
help
Для показа справки по определённой команде, выполните
help КОМАНДА
cd ПАПКА
Переход в другую директорию на локальной системе:
lcd
Удаление файла в шаре:
del ИМЯ_ФАЙЛА
Имеется псевдоним этой команды:
rm ИМЯ_ФАЙЛА
И ещё одна команда со схожей функцией:
deltree ШАБЛОН_ИМЕНИ
Эта команда рекурсивно удалить все совпавшие с шаблоном имени файлы и директории.
dir
Имеется псевдоним этой команды:
ls
И ещё один, даже более короткий псевдоним:
l
Скачать файлы с общей папки:
get <ИМЯ_УДАЛЁННОГО_ФАЙЛА>
Для повторного скачивания файла:
reget <ИМЯ_УДАЛЁННОГО_ФАЙЛА>
Для скачивания всех файлов, чьём имя совпадает с шаблоном:
mget ШАБЛОН_ИМЕНИ
Например, чтобы скачать все файлы с файловым расширением .exe нужно запустить такую команду:
mget "*.exe"
Для каждого файла, совпавшего с шаблоном, будет выполнен запрос на скачивание. Если вы действительно хотите его скачать, то нажмите клавишу «y»:
Get file ChromeSetup.exe? y
Также имеется команда newer, которая скачивает файлы (mget), которые новее, чем указанный локальный файл. Используется она так:
newer ФАЙЛ
Выгрузка файла на общую папку:
put <ЛОКАЛЬНОЕ_ИМЯ>
Следующая команда скопирует локальный файл в шару:
print ИМЯ_ФАЙЛА
Повторная закачка файла:
reput <ЛОКАЛЬНОЕ_ИМЯ>
Для закачки всех файлов, чьём имя совпадает с шаблоном:
mput ШАБЛОН_ИМЕНИ
К примеру, чтобы закачать в шару все файлы (из локальной текущей рабочей директории), которые имеют расширение *.cap, нужно запустить команду:
mput "*.cap"
Для каждого файла, совпавшего с шаблоном, будет выполнен запрос подтверждения, если вы действительно хотите его закачать, то нажмите клавишу «y»:
Put file wpa.cap? y putting file wpa.cap as \wpa.cap (335,2 kb/s) (average 277,8 kb/s) Put file wep.cap? y putting file wep.cap as \wep.cap (0,6 kb/s) (average 169,1 kb/s)
Используя команду:
recurse
Можно включать и отключать рекурсивный режим для mget и mput.
Показ всей возможной информации о файле:
allinfo ФАЙЛ
Пример:
allinfo all-databases.sql altname: ALL-DA~1.SQL create_time: Чт авг 29 12:29:51 2019 MSK access_time: Вс янв 5 23:31:47 2020 MSK write_time: Ср авг 1 09:51:25 2018 MSK change_time: Вс янв 5 19:48:36 2020 MSK attributes: A (20) stream: , 381945262 bytes
В выводимой информации можно увидеть альтернативное (DOS) имя, временные метки (дата создания, доступа, записи и изменения файла), атрибуты.
md ДИРЕКТОРИЯ
Псевдоним:
mkdir ДИРЕКТОРИЯ
rd ДИРЕКТОРИЯ
Псевдоним команды:
rmdir ДИРЕКТОРИЯ
Удаление файлов
Следующая команда удалит все совпавшие с МАСКОЙ файлы:
rm МАСКА
Псевдоним команды для удаления файлов:
del МАСКА
С помощью команды wdel можно удалить все совпавшие файлы по подстановочным символам:
wdel АТРИБУТЫ МАСКА
Ссылки
Создание жёсткой ссылки Windows:
hardlink ИСТОЧНИК НАЗНАЧЕНИЕ
Создание жёсткой ссылки UNIX:
link СТАРОЕ_ИМЯ НОВОЕ_ИМЯ
Создание символьной ссылки UNIX:
symlink СТАРОЕ_ИМЯ НОВОЕ_ИМЯ
q
Псевдоним:
quit
Второй псевдоним:
exit
Показ текущей рабочей директории:
pwd
Пример вывода:
Current directory is \\HACKWARE-MIAL\Share\
Другой вариант показа текущей рабочей директории — это команда cd без аргументов:
cd
Пример вывода:
Current directory is \
Создание и извлечение архивов tar
Программа tar используется для объединения нескольких файлов в один файл. Объединение происходит без сжатия. Для того, чтобы несколько файлов из сетевой папки объединить в архив и скачать на локальную систему запустите команду вида:
tar c АРХИВ.tar ФАЙЛ1 ФАЙЛ2 ФАЙЛ3
К примеру, я хочу скачать файлы all-databases.sql besside.log ChromeSetup.exe из совместной папки и объединить их в архив all.tar, тогда моя команда следующая:
tar c all.tar all-databases.sql besside.log ChromeSetup.exe
Если нужно разархивировать файл на локальной системе и всё его содержимое отправить на удалённую общую папку, то запустите команду вида:
tar x АРХИВ.tar
К примеру, я хочу отправить содержимое архива all.tar в общую папку:
tar x all.tar
Для установления режимов tar используется команда
tarmode <full|inc|reset|noreset>
timeout <ЧИСЛО>
Таймаут устанавливается в секундах и по умолчанию равен 20.
Выполнение команд в локальной системе:
!КОМАНДА
Чтобы команда выполнялась не на удалённой системе, а на локальной, поставьте перед ней ! (восклицательный знак), например^
!ls -l
Как изменить права доступа к файлам и папкам
Команда, которую мы должны использовать для выполнения этой задачи, — это chmod, это будет инструмент, с помощью которого мы сможем добавлять или удалять разрешения как для файла, так и для существующей папки в файловой системе нашей операционной системы. Чтобы выполнить эту настройку с помощью chmod, мы можем сделать это двумя разными способами, используя буквы, которые более «человеческие», но более длинные, а также числа в «восьмеричном» формате, что намного быстрее. Эта последняя форма является нашей любимой из-за ее скорости, хотя возможно, что поначалу вам больше нравится использовать буквы, потому что она гораздо лучше понимается.
Буквы
Если мы собираемся использовать буквы для добавления или удаления разрешений для папки или файла, мы должны учитывать роли, символы и разрешения.
Есть три типа ролей:
- u: пользователь
- г: группа
- или: другие
- а: все (все), если вам нужно применить одно и то же разрешение к пользователю, группам и другим пользователям, используйте «а» для экономии времени.
Два типа символов:
- +: добавить разрешения
- -: удалить разрешения
- =: указывает набор разрешений.
Три вида разрешений:
- r: чтение
- w: письмо
- x: выполнение
Далее мы предлагаем вам серию примеров, чтобы вы могли понять, о чем мы говорим:
Предоставьте полные права на чтение, запись и выполнение всем ролям, как пользователю, так и группе и другим:
Удалите разрешения на чтение, запись и выполнение у других пользователей:
В конце концов, все заключается в объединении ролей, символов и разрешений в зависимости от наших потребностей.
Восьмеричный с использованием чисел
CHMOD Команда также совместима с другой номенклатурой, которую мы собираемся научить вас, и которая основана на восьмеричной системе счисления.
Представьте, что разрешения владельца (rwx) обозначены 0 и 1. То есть, если, например, мы хотим предоставить разрешения только на чтение и запись (а не на выполнение), это будет: 110. Если мы хотим только разрешение на чтение, это будет быть: 100.
Поэтому с учетом всех имеющихся возможностей получаем следующие значения:
- 0 0 0:0
- 0 0 1:1
- 0 1 0:2
- 0 1 1:3
- 1 0 0:4
- 1 0 1:5
- 1 1 0:6
- 1 1 1:7
То есть это то, что можно экстраполировать как на пользователя, группу, так и на других.
Формат команды будет следующим:
Где x будет изменен на число в зависимости от назначенных разрешений.
Например, если мы хотим предоставить владельцу полные разрешения и оставить две другие роли (группу и другие) без каких-либо разрешений, команда будет выглядеть так:
Если мы хотим предоставить разрешения на чтение и запись для всех ролей, это будет:
С помощью этих двух простых способов мы можем установить права доступа к файлам и папкам на нашем компьютере с Linux. Кроме того, у нас под рукой будет команда ls -l для получения информации в реальном времени о файлах и папках в системе. Мы рекомендуем вам посетить официальное руководство chmod для Linux, для этого мы выполним на консоли следующее:
Мы также рекомендуем изучить команды getfacl и setfacl, чтобы настроить более продвинутые списки управления доступом в Linux, и не только использовать пользователей, группы и другие, это позволит нам повысить степень детализации, хотя он явно намного более продвинутый, чем популярный chmod. В общем, если вы хорошо организовываете пользователей и группы, вам не нужно использовать эти списки управления доступом.
Запустить SSH в фоновом режиме
Существует несколько способов запустить ssh соединение в фоновом режиме — то есть освободим текущий терминал.
-L, screen, tmux, nohup
Мне запустить ssh фоном из скрипта помог nohup, поэтому начнём с него
nohup ssh user@host «cd scripts;python3 my_script.py $ARG1 $ARG2; exit» &
Для чего это было нужно: Python скрипт сначала
открывал одно ssh соединение из
subprocess
там выполнялась команда для запуска
мониторинга потребления памяти
и больше от этого соединения ничего было не нужно, зато необходимо было
выполнять новые соединения с нагрузкой из другого скрипта.
Чтобы уйдя из первого подключения не оборвать мониторинг потребления памяти
перед ssh нужно было добавить nohup, а в самом конце поставить &
Создать SSH туннель
Туннели обычно создают для перенаправления траффика. SSH tunnel это то же самое что и SSH port forwarding.
Допустим вы хотите направить траффик со своего localhost (127.0.0.1) на
удалённый
хост 192.168.0.2.
На
удалённом
хосте у вас есть пользователь с именем andrei и вы знаете его пароль.
Сперва нужно определиться с портами на локальном хосте и на удалённом.
Предположим, вы выбрали 9119 для локального и
9200 для
удаленного
хостов.
То есть вы хотите, чтобы всё, что идёт на localhost:9119 было перенаправлено на
192.168.0.2:9200
Выполните
ssh -L 9119:192.168.0.2:9200 andrei@192.168.0.2
The authenticity of host ‘192.168.0.2 (192.168.0.2)’ can’t be established.
ECDA …
…
andrei@192.168.0.2’s password:
Last login: Sun Jan 31 13:23:00 2021
Проверьте ip выполнив
ip a
Если вам нужен туннель с поддержкой графического интерфейса
X Window System
используйте флаг -X
ssh -X -L 9119:192.168.0.2:9200 andrei@192.168.0.2
Настройка файла известных пользователю хостов
Файл известных хостов позволяет клиенту аутентифицировать удаленные серверы. Он содержит список ключей для удаленных серверов, к которым подключился пользователь. Это помогает пользователю убедиться, что он не подключается к неправильным удаленным серверам. Каждый раз, когда вы устанавливаете ssh-соединение с удаленным сервером, он показывает вам открытый ключ и подтверждение соответствующего закрытого ключа.
Отпечатки удаленного сервера добавляются в файл know_hosts , если у вас их еще нет, так что каждый раз, когда вы обращаетесь к одному и тому же серверу, он сверяется с существующим отпечатком. Вот почему, если вы переустановите удаленный сервер и снова попытаетесь подключиться к нему по ssh, вы получите предупреждение о неизвестном отпечатке пальца, поскольку он мог измениться в процессе переустановки. Эта проверка выполняется с помощью параметра StrictHostKeyChecking . Вы также можете передать известный путь к файлу hosts.
Пример файла конфигурации SSH
Теперь, когда мы рассмотрели основы файла конфигурации SSH, давайте посмотрим на следующий пример.
Обычно при подключении к удаленному серверу через SSH вы указываете имя удаленного пользователя, имя хоста и порт. Например, чтобы войти в систему как пользователь с именем на хост с именем на порту из командной строки, вы должны ввести:
Чтобы подключиться к серверу с использованием тех же параметров, которые указаны в приведенной выше команде, просто набрав , поместите следующие строки в свой :
~/.ssh/config
Теперь, когда вы вводите , клиент ssh будет читать файл конфигурации и использовать данные подключения, указанные для хоста :
Директории для хранения файлов конфигурации
Директория /boot содержит все файлы, необходимые для загрузки компьютера. Эти файлы не изменяются очень часто. В системах Linux в данной директории обычно можно обнаружить поддиректорию /boot/grub . Директория /boot/grub содержит файл /boot/grub/grub.cfg (на более старых системах также может использоваться файл /boot/grub/grub.conf ), в рамках которого описывается меню загрузки, отображаемое перед загрузкой ядра ОС.
Все специфичные для машины конфигурационные файлы должны быть расположены в директории /etc . Изначально имя директории /etc была образовано от слова etcetera (и так далее), но сегодня люди часто расшифровывают его как Editable Text Configuration (директория с редактируемыми текстовыми файлами конфигурации).
В директории /etc также можно обнаружить большое количество других важных файлов.
Во многих дистрибутивах Unix/Linux имеется директория /etc/init.d , которая содержит сценарии для запуска и остановки демонов . Эта поддиректория может исчезнуть в процессе перехода дистрибутивов Linux на системы инициализации, которые заменят старую систему инициализации init , используемую для запуска всех демонов .
Управление системой вывода графики осуществляется средствами программного обеспечения от организации X.org Foundation (а именно, сервера оконной системы X Window System или просто X ). Файл конфигурации для вашего сервера оконной системы носит имя /etc/X11/xorg.conf .
Содержимое директории каркаса /etc/skel копируется в домашнюю директорию при создании учетной записи пользователя. Она обычно содержит такие скрытые файлы, как сценарий .bashrc .
Файл /etc/sysconfig/harddisks содержит дополнительные параметры настройки жестких дисков. Формат файла описан в самом файле.
Вы можете ознакомиться с описанием программного обеспечения, обнаруженного утилитой kudzu , которое сохраняется в файле /etc/sysconfig/hwconf . Kudzu является приложением от компании Red Hat, предназначенным для автоматического обнаружения и настройки аппаратного обеспечения.
Файлы для настройки сетевых устройств из данной директории будут обсуждаться в главе, посвященной настройке сети.
ssh-copy-id
Я предпочитаю использовать с флагом -i и задавать путь до нужного ключа
sudo ssh-copy-id -i ~/.ssh/andrei-key.pub andrei@192.168.0.2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: «/home/andrei/.ssh/andrei-key.pub»
The authenticity of host ‘192.168.0.2 (192.168.0.2)’ can’t be established.
ECDSA key fingerprint is SHA256:abcdefgh1234567890abcdefgh1234567890abc+def.
Are you sure you want to continue connecting (yes/no/)?
Введите yes
Are you sure you want to continue connecting (yes/no/)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
andrei@192.168.0.2’s password:
Введите пароль
Number of key(s) added: 1
Now try logging into the machine, with: «ssh ‘andrei@192.168.0.2′»
and check to make sure that only the key(s) you wanted were added.
Теперь на хосте 192.168.0.2 в файле
/home/andrei/.ssh/authorized_keys
появилась новая запись вида
ssh-rsa AAAAB3NzaC1y … lseP/jXcq … Uydr/2CwQ &hellip ++TpY19pHqD/AnhL … Az62T/Ipyx … 8U2T andrei@host.andrei.com
Знак … заменяет длинные последовательности случайных символов для экономии места.
Проверить ключ можно командой
ssh -i ~/.ssh/mykey user@host
В нашем случае
ssh -i ~/.ssh/andrei-key andrei@192.168.0.2
Если вы не задавали пароль для ключа, то попадёте на удалённый хост без лишних движений
Last login: Sun Jan 10 16:48:27 2021 from 192.168.0.1
Управление SSH-соединениями в Linux / Unix с помощью файла конфигурации SSH
SSH (Secure Shell) обычно используется для доступа к удаленным серверам Linux / Unix. Для доступа к удаленному серверу требуется указать имя пользователя, имя хоста или IP-адрес и пароль, или в большинстве случаев для повышения безопасности используется ключ ssh. Если вы имеете дело только с одним удаленным сервером, легко просто запустить синтаксис ssh для доступа, так как вы легко запомните IP-адрес или имя хоста. Однако, когда дело доходит до управления несколькими удаленными серверами, становится критически важным иметь инструмент управления ssh, который избавит вас от необходимости управлять всеми удаленными хостами и их учетными данными. В этом случае нам на помощь приходит конфигурационный файл ssh.
Чтобы иметь возможность использовать файл конфигурации ssh, нам необходимо установить ssh в вашей системе. Большинство серверов Linux поставляются с уже установленным ssh. Его файлы хранятся в каталоге ~ / .ssh .
Как видите, папка содержит несколько файлов, как описано ниже:
- id_rsa — хранит закрытый ключ, который для аутентификации удаленного доступа с использованием ключей ssh
- id_rsa.pub — хранит публичный ключ
- known_hosts — хранит открытые ключи для всех подключенных хостов.
В этом каталоге мы можем создать файл конфигурации ssh, который определяет все хосты, их имена хостов, имена пользователей и пароли, называемые профилями. Количество создаваемых профилей не ограничено. Это позволит нам легко управлять ssh-подключением и избежать суеты, связанной с необходимостью запоминать все. В обычных случаях я бы подключился к удаленному серверу Linux, используя синтаксис ниже
В приведенном выше случае мы передаем удаленное имя пользователя и IP-адрес или имя хоста сервера. Порт по умолчанию для ssh — 22, который нам не нужно писать. Если бы мы использовали другой порт, мы бы использовали флаг -p, а затем номер порта, как показано.
Использование X11 forwarding через ssh в Unix/Linux
На локальном хосте должна быть установлена система с X11, чтобы отображать удаленные программы. Для того чтобы выполнить форвардинг, выполните:
$ ssh -X remote_ssh_user@remote_server
Например:
$ ssh -X -v root@66.66.66.66
После входа в систему вы можете запускать любую X11 программу на удаленном сервере, как обычно, и ее отображение будет отображаться на локальной клиентской машине.
Можно еще опции, передавать через коммандную строку:
$ ssh -o ForwardX11=yes user_name@your_remote_server
Безопастность при использовании X11 forwarding через ssh
Обычно, не рекомендуется всегда работать с «ForwardX11 yes». Поэтому, если вы хотите использовать свои SSH-соединения с пвыщенной безопасностью, лучше всего сделать следующее:
- Не прописывать «ForwardX11 yes» в ваш «$HOME/.ssh/confi»g файл.
- Используйте «ForwardingX11» только когда вам это необходимо, используя «ssh -X your_user@your_server».
- Если вы можете, полностью отключите «X11Forwarding» на вашем сервере.
Вот и все, статья «Настройка X11 forwarding используя ssh в Unix/Linux» завершена.