Сейчас мы создадим и настроим конфигурационный файл для OpenSSH.
Глобальный или локальный файл конфигурации для SSH-клиента может создавать ярлыки для сервера sshd, включая расширенные параметры клиента ssh. Вы можете настроить свой SSH-клиент OpenSSH с помощью различных файлов следующим образом, чтобы сэкономить время и набрать часто используемые параметры командной строки ssh-клиента, такие как порт, имя пользователя, имя хоста, файл идентификатора и многое другое.
Давайте используем некоторые общие примеры файлов конфигурации OpenSSH.
Для создания файла конфигурации ssh, существуют следующие правила:
config value config1 value1 value2
config=value config1=value1 value2
mkdir -p $HOME/.ssh
chmod 0700 $HOME/.ssh
Для демонстрационной цели наша установка выглядит следующим образом:
Основываясь на приведенной выше информации, моя команда 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-соединения по одному соединению. 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
Псевдоним – это не что иное, как ярлык для команд, и вы можете создать псевдоним, используя следующий синтаксис в файле ~/.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
Спасибо за информацию! Подскажите, если ssh-ключ использует пароль, нужно вносить какие-то настройки в файл конфигурации ssh? Потому что с найстройками из Вашей статьи ssh не хочет подключаться к серверу, но при вводе команды и всех параметров (IP-адреса, порта, имени пользователя) вручную все работает.