ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Примеры файлов конфигурации в OpenSSH

Примеры файлов конфигурации в OpenSSH

Сейчас мы создадим и настроим конфигурационный файл для OpenSSH.

Глобальный или локальный файл конфигурации для SSH-клиента может создавать ярлыки для сервера sshd, включая расширенные параметры клиента ssh. Вы можете настроить свой SSH-клиент OpenSSH с помощью различных файлов следующим образом, чтобы сэкономить время и набрать часто используемые параметры командной строки ssh-клиента, такие как порт, имя пользователя, имя хоста, файл идентификатора и многое другое.

Давайте используем некоторые общие примеры файлов конфигурации OpenSSH.

Конфигурация клиента в конфигурационном файле OpenSSH для всей системы

  1. /etc/ssh/ssh_config : Этот файл устанавливает конфигурацию по умолчанию для всех пользователей клиентов OpenSSH на этом рабочем столе/ноутбуке и должен быть доступен для чтения всем пользователям системы.

Конфигурация клиента OpenSSH для конкретного пользователя

  1. ~/.ssh/config или $HOME/.ssh/config: Это файл собственной конфигурации пользователя, который переопределяет параметры в файле конфигурации глобального клиента/etc/ssh/ssh_config.

Конфигурационные файлы ~/.ssh/

Для создания файла конфигурации ssh, существуют следующие правила:

 

Примеры

Для демонстрационной цели наша установка выглядит следующим образом:

  1. Клиент локального рабочего стола — Apple OS X или Ubuntu (Linux).
  2. Удаленный сервер Unix — сервер OpenBSD, на котором запущен последний сервер OpenSSH.
  3. Удаленный сервер OpenSSH ip/host: 75.126.153.206 (server1.andreyex.ru)
  4. Удаленный пользователь сервера OpenSSH: andreyex
  5. Удаленный порт OpenSSH: 4242
  6. Локальный файл файла приватного ключа ssh:/nfs/shared/users/andreyex/keys/server1/id_rsa

Основываясь на приведенной выше информации, моя команда ssh выглядит следующим образом:
$ ssh -i /nfs/shared/users/andreyex/keys/server1/id_rsa -p 4242 andreyex@server1.andreyex.ru

или
$ ssh -i /nfs/shared/users/andreyex/keys/server1/id_rsa -p 4242 -l andreyex server1.andreyex.ru

 

Вы можете избежать ввода всех параметров команды ssh во время входа в удаленную машину и/или для выполнения команд на удаленной машине. Все, что вам нужно сделать, это создать файл конфигурации ssh. Откройте приложение Терминал и создайте свой файл конфигурации, введя следующую команду:

## edit file in $HOME dir
 
vi ~/.ssh/config

 

или

## edit file in $HOME dir
 
vi $HOME/.ssh/config

 

Добавьте/примените следующий параметр конфигурации для ярлыка на server1 в соответствии с нашей установкой образца:

Host server1
     HostName server1.andreyex.ru
     User andreyex
     Port 4242
     IdentityFile/nfs/shared/users/andreyex/keys/server1/id_rsa

 

Сохраните и закройте файл. Чтобы открыть новый сеанс SSH на server1.andreyex.ru, введите следующую команду:

$ ssh server1

 

Добавление другого хоста

Добавьте в свой файл ~/.ssh/config следующее:

Host nas01
     HostName 192.168.1.100
     User root
     IdentityFile ~/.ssh/nas01.key

 

Вы можете просто ввести:

$ ssh nas01

 

Объедините все это

Вот мой примерный файл ~/.ssh/config, который объясняет и создает, проектирует и оценивает различные потребности в удаленном доступе с помощью ssh client:

### по умолчанию для всех ##
Host *
     ForwardAgent no
     ForwardX11 no
     ForwardX11Trusted yes
     User andreyex
     Port 22
     Protocol 2
     ServerAliveInterval 60
     ServerAliveCountMax 30
 
## переопределение согласно хосту ##
Host server1
     HostName server1.andreyex.ru
     User andreyex
     Port 4242
     IdentityFile/nfs/shared/users/andreyex/keys/server1/id_rsa
 
## Домашний сервер nas ##
Host nas01
     HostName 192.168.1.100
     User root
     IdentityFile ~/.ssh/nas01.key
 
## Вход в Aws Cloud ##
Host aws.apache
     HostName 1.2.3.4
     User wwwdata
     IdentityFile ~/.ssh/aws.apache.key
 
## Вход на внутренний сервер локальной сети в 192.168.0.251 через наш публичный офис Великобритании ssh на основе шлюза с помощью ##
## $ ssh uk.gw.lan ##
Host uk.gw.lan uk.lan
     HostName 192.168.0.251
     User andreyex
     ProxyCommand  ssh andreyex@gateway.uk.andreyex.ru nc %h %p 2>/dev/null
 
## Наш Прокси-Сервер ##
## Вперед всех локальный порт 3128 трафик на порт 3128 на удаленном сервере vps1.andreyex.ru  ## 
## $ ssh -f -N  proxyus ##
Host proxyus
    HostName vps1.andreyex.ru
    User breakfree
    IdentityFile ~/.ssh/vps1.andreyex.ru.key
    LocalForward 3128 127.0.0.1:3128

 

Понимание конфигурации записи ~/.ssh/

Ускорить сессию ssh

Мультиплексирование — это не что иное, как отправка более одного ssh-соединения по одному соединению. OpenSSH может повторно использовать существующее TCP-соединение для нескольких одновременных сеансов SSH. Это приводит к сокращению накладных расходов при создании новых TCP-соединений. Обновите файл ~/.ssh/config:

Host server1
        HostName server1.andreyex.ru
        ControlPath ~/.ssh/controlmasters/%r@%h:%p
        ControlMaster auto

 

В этом примере я просматриваю один хост для доступа к другому серверу, т. е. Перехватывает хост с помощью ProxyCommand :

## ~/.ssh/config ##
Host internal
  HostName 192.168.1.100
  User vivek
  ProxyCommand ssh buba@vpn.andreyex.net.in -W %h:%p
  ControlPath ~/.ssh/controlmasters/%r@%h:%p
  ControlMaster auto

 

Заметка о псевдонимах оболочки (устаревший метод)

ПРЕДУПРЕЖДЕНИЕ! Эта настройка на основе bash shell aliased может работать для вас. Тем не менее, мы рекомендуем вам использовать файл ~/.ssh/config для улучшения результатов в долгосрочной перспективе. Конфигурационный файл SSH — это более продвинутые и элегантные решения. Команда alias используется только здесь для демонстрационной цели, и она здесь из-за исторических причин.

Псевдоним — это не что иное, как ярлык для команд, и вы можете создать псевдоним, используя следующий синтаксис в файле ~/.bashrc :

## создайте новый псевдоним оболочки bash следующим образом ##
 
alias server1="ssh -i/nfs/shared/users/andreyex/keys/server1/id_rsa -p 4242 andreyex@server1.andreyex.ru"

 

Затем, чтобы ssh в server1 вместо того, чтобы вводить полную команду ssh -i/nfs/shared/users/andreyex/keys/server1/id_rsa -p 4242 andreyex@server1.andreyex.ru, вам нужно было бы только ввести команду ‘server1’ и нажать клавишу [ENTER]:

$ server1

 

Exit mobile version