мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
soft:openssh [2025/03/17 18:00] radi0devsoft:openssh [2025/11/09 12:07] (текущий) – внешнее изменение A User Not Logged in
Строка 17: Строка 17:
 ==== Опции ==== ==== Опции ====
  
-- ''-f <~/.ssh/id_srv2>'' - указывает имя/путь файла ключа. +- ''-f <~/.ssh/id_srv2>'' - указывает имя/путь файла ключа.\\ 
-- ''-t <технология шифрования>'' - выбор технологии (''rsa1'', ''dsa''). +- ''-t <технология шифрования>'' - выбор технологии (''rsa1'', ''dsa'').\\ 
-- ''-b <размер ключа в битах>'' - задаем размер ключа. +- ''-b <размер ключа в битах>'' - задаем размер ключа.\\ 
-- ''-N <_new_passphrase_>'' - обеспечивает ввод новой ключевой фразы. +- ''-N <_new_passphrase_>'' - обеспечивает ввод новой ключевой фразы.\\ 
-- ''-P <passphrase>'' - обеспечивает ввод (старой) ключевой фразы. +- ''-P <passphrase>'' - обеспечивает ввод (старой) ключевой фразы.\\ 
-- ''-p'' - запрашивает изменение ключевой фразы приватного ключа вместо создания нового приватного ключа. Предложит указать имя файла содержащего приватный ключ, старую ключевую фразу и, дважды, новую ключевую фразу. +- ''-p'' - запрашивает изменение ключевой фразы приватного ключа вместо создания нового приватного ключа. Предложит указать имя файла содержащего приватный ключ, старую ключевую фразу и, дважды, новую ключевую фразу.\\ 
-- ''-C <comment>'' - обеспечивает ввод нового комментария.+- ''-C <comment>'' - обеспечивает ввод нового комментария.\\
 - ''-D <reader>'' - копировать публичный RSA-ключ на smartcard в устройстве _reader_. - ''-D <reader>'' - копировать публичный RSA-ключ на smartcard в устройстве _reader_.
  
Строка 37: Строка 37:
 ==== Опции ==== ==== Опции ====
  
-- ''-b <биты>'' - Определяет число бит в ключе сервера эфемерного протокола версии 1 (по умолчанию 768). +- ''-b <биты>'' - Определяет число бит в ключе сервера эфемерного протокола версии 1 (по умолчанию 768).\\ 
-- ''-d'' - Режим отладки. Сервер посылает отладочную информацию в файл регистрации событий системы и не переходит в фоновый режим работы. Также сервер не создает дочерних процессов и обрабатывает только одно соединение. Этот параметр предназначен только для настройки сервера. Несколько параметров -d, указанных один за другим, повышают уровень отладки. Максимум это 3.+- ''-d'' - Режим отладки. Сервер посылает отладочную информацию в файл регистрации событий системы и не переходит в фоновый режим работы. Также сервер не создает дочерних процессов и обрабатывает только одно соединение. Этот параметр предназначен только для настройки сервера. Несколько параметров -d, указанных один за другим, повышают уровень отладки. Максимум это 3.\\
 - ''-е'' - Если указан этот параметр, sshd направит вывод в консоль вместо механизма регистрации событий системы. - ''-е'' - Если указан этот параметр, sshd направит вывод в консоль вместо механизма регистрации событий системы.
-- ''-f <файл_конфигурации>'' - Определяет имя файла конфигурации. По умолчанию это ''/etc/openssh/sshd_config''. sshd отказывается работать не имея файла конфигурации. +- ''-f <файл_конфигурации>'' - Определяет имя файла конфигурации. По умолчанию это ''/etc/openssh/sshd_config''. sshd отказывается работать не имея файла конфигурации.\\ 
-- ''-g <время_задержки_регистрации>'' - Позволяет клиенту растянуть время в течении которого клиент должен себя аутентифицировать (по умолчанию 600 секунд). Если клиент не смог аутентифицировать себя в течение этого времени, сервер отключается. Значение равное нулю означает неограниченное время ожидания.+- ''-g <время_задержки_регистрации>'' - Позволяет клиенту растянуть время в течении которого клиент должен себя аутентифицировать (по умолчанию 600 секунд). Если клиент не смог аутентифицировать себя в течение этого времени, сервер отключается. Значение равное нулю означает неограниченное время ожидания.\\
 - ''-h <файл_ключа_машины>'' - Определяет файл, из которого будет считан ключ машины (по умолчанию это ''/etc/openssh/ssh_host_key''). Этот параметр должен быть указан, если sshd запущен не от имени суперпользователя. - ''-h <файл_ключа_машины>'' - Определяет файл, из которого будет считан ключ машины (по умолчанию это ''/etc/openssh/ssh_host_key''). Этот параметр должен быть указан, если sshd запущен не от имени суперпользователя.
-- ''-i'' - Определяет, что sshd должен быть запущен из inetd. +- ''-i'' - Определяет, что sshd должен быть запущен из inetd.\\ 
-- ''-k <время_генерации_ключа>'' - Определяет, как часто будет регенерирован ключ сервера эфемерного протокола версии 1 (по умолчанию 3600 секунд). +- ''-k <время_генерации_ключа>'' - Определяет, как часто будет регенерирован ключ сервера эфемерного протокола версии 1 (по умолчанию 3600 секунд).\\ 
-- ''-p <порт>'' - Определяет порт, на котором сервер будет ожидать соединения (по умолчанию 22). +- ''-p <порт>'' - Определяет порт, на котором сервер будет ожидать соединения (по умолчанию 22).\\ 
-- ''-q'' - Режим молчания. В системный журнал регистрации событий не будет занесено никакой информации. +- ''-q'' - Режим молчания. В системный журнал регистрации событий не будет занесено никакой информации.\\ 
-- ''-t'' - Режим тестирования. Только проверяет соответствие файла конфигурации и безопасность ключей. +- ''-t'' - Режим тестирования. Только проверяет соответствие файла конфигурации и безопасность ключей.\\ 
-- ''-u <величина>'' - Определяет размер полей в структуре utmp хранящей имя удаленной машины. +- ''-u <величина>'' - Определяет размер полей в структуре utmp хранящей имя удаленной машины.\\ 
-- ''-D'' - Когда указан этот параметр, sshd не будет переведен в режим работы демона. +- ''-D'' - Когда указан этот параметр, sshd не будет переведен в режим работы демона.\\ 
-- ''-V <идентификатор_протокола_клиента>'' - SSH-2 совместимый режим. +- ''-V <идентификатор_протокола_клиента>'' - SSH-2 совместимый режим.\\ 
-- ''-4'' - Принуждает sshd использовать только IPv4 адреса.+- ''-4'' - Принуждает sshd использовать только IPv4 адреса.\\
 - ''-6'' - Принуждает sshd использовать только IPv6 адреса.  - ''-6'' - Принуждает sshd использовать только IPv6 адреса. 
  
Строка 59: Строка 59:
 Для применения настроек нужно дёрнуть службу ''sshd'' Для применения настроек нужно дёрнуть службу ''sshd''
 Пример: Пример:
-''''''+<code>
 # слушать 22ой порт # слушать 22ой порт
 Port 22  Port 22 
Строка 75: Строка 75:
 # резрешить запуск X11 приложений # резрешить запуск X11 приложений
 X11Forwarding yes X11Forwarding yes
-''''''+</code>
  
 Интересный факт: приветствие, выводимое при подключение  Интересный факт: приветствие, выводимое при подключение 
Строка 83: Строка 83:
 Мощный инструмент, позволяющий как выполнять удаленные команды, так и вертеть трафиком. Мощный инструмент, позволяющий как выполнять удаленные команды, так и вертеть трафиком.
  
-Синтаксис команды выглядит так:+Синтаксис команды выглядит так:\\
 ''ssh [опции] [имя пользователя@]<сервер> [команда]'' ''ssh [опции] [имя пользователя@]<сервер> [команда]''
  
 Tip: Tip:
-В ''.ssh/config'' можно задать псевдонимы в следующем формате:+В ''.ssh/config'' можно задать псевдонимы в следующем формате:\\
 <code> <code>
 Host radi0ss Host radi0ss
Строка 98: Строка 98:
 ==== Опции ==== ==== Опции ====
  
-Общие параметры   +Общие параметры  \\ 
-- ''-f'' - перевести ssh в фоновый режим;   +- ''-f'' - перевести ssh в фоновый режим;  \\ 
-- ''-g'' - разрешить удалённым машинам обращаться к локальным портам;   +- ''-g'' - разрешить удалённым машинам обращаться к локальным портам;  \\ 
-- ''-l <имя>'' - имя пользователя, под которым собираемся подключаться к удаленной машине;   +- ''-l <имя>'' - имя пользователя, под которым собираемся подключаться к удаленной машине;  \\ 
-- ''-n'' - перенаправить стандартный вывод в /dev/null;   +- ''-n'' - перенаправить стандартный вывод в /dev/null;  \\ 
-- ''-N'' - указывает, что не запускать удалённый сеанс shell;   +- ''-N'' - указывает, что не запускать удалённый сеанс shell;  \\ 
-- ''-p <n>'' - указать порт для подключения на удалённой машине;   +- ''-p <n>'' - указать порт для подключения на удалённой машине;  \\ 
-- ''-q'' - не показывать сообщения об ошибках;   +- ''-q'' - не показывать сообщения об ошибках;  \\ 
-- ''-v'' - режим отладки, указанный несколько раз (max 3), сделает ssh более многословным;  +- ''-v'' - режим отладки, указанный несколько раз (max 3), сделает ssh более многословным;  \\
      
-Перенаправление X11   +Перенаправление X11  \\ 
-- ''-X'' - включить перенаправление X11;   +- ''-X'' - включить перенаправление X11;  \\ 
-- ''-x'' - отключить перенаправление X11;  +- ''-x'' - отключить перенаправление X11;  \\
      
-Перенаправление портов и туннелирование +Перенаправление портов и туннелирование\\ 
-- ''-L [локальный_адрес:]локальный_порт:удаленный_адрес:удаленный_порт'' - перенаправление локального порта на порт удаленной машины;  +- ''-L [локальный_адрес:]локальный_порт:удаленный_адрес:удаленный_порт'' - перенаправление локального порта на порт удаленной машины; \\ 
-- ''-R [удаленный_адрес:]удаленный_порт:локальный_адрес:локальный_порт'' - перенаправление удаленного порта с удаленной машины на локальный порт;  +- ''-R [удаленный_адрес:]удаленный_порт:локальный_адрес:локальный_порт'' - перенаправление удаленного порта с удаленной машины на локальный порт; \\ 
-- ''-D [bind_address:]порт'' - создание локального SOCKS-прокси-сервера, перенаправляющего трафик с определенного сокета по зашифрованному каналу на удалённый сервер;   +- ''-D [bind_address:]порт'' - создание локального SOCKS-прокси-сервера, перенаправляющего трафик с определенного сокета по зашифрованному каналу на удалённый сервер;  \\ 
-- ''-w local_tun[:remote_tun]'' - создает туннель между локальным и удаленным [[Виртуальные сетевые интерфейсы|виртуальными сетевыми интерфейсами]] (TUN или TAP) с номерами ''local_tun'' и ''remote_tun'' Если указать ''any'' - выбирается любой. Если не указать ''remote_tun'' - подразумевается ''any''==честно говоря, не получалось настроить туннель через tun интерфейсы==+- ''-w local_tun[:remote_tun]'' - создает туннель между локальным и удаленным [[Виртуальные сетевые интерфейсы|виртуальными сетевыми интерфейсами]] (TUN или TAP) с номерами ''local_tun'' и ''remote_tun'' Если указать ''any'' - выбирается любой. Если не указать ''remote_tun'' - подразумевается ''any''<nowiki>честно говоря, не получалось настроить туннель через tun интерфейсы</nowiki> \\
      
-Аутентификация и ключи   +Аутентификация и ключи  \\ 
-- ''-i <path>'' - явно указать приватный ключ для подключения;  +- ''-i <path>'' - явно указать приватный ключ для подключения;  \\
 - ''-A'' - включить переадресацию агента - ''-A'' - включить переадресацию агента
      
-Протоколы и адреса   +Протоколы и адреса  \\ 
-- ''-4'' - принудительное использование только IPv4 адресов;   +- ''-4'' - принудительное использование только IPv4 адресов;  \\ 
-- ''-6'' - принудительное использование только IPv6 адресов;   +- ''-6'' - принудительное использование только IPv6 адресов;  \\ 
-- ''-1'' - принудительное использование SSH протокола только версии 1;   +- ''-1'' - принудительное использование SSH протокола только версии 1;  \\ 
-- ''-2'' - принудительное использование SSH протокола только версии 2;  +- ''-2'' - принудительное использование SSH протокола только версии 2;  \\
      
-Дополнительные параметры   +Дополнительные параметры  \\ 
-- ''-C'' - включить сжатие данных;   +- ''-C'' - включить сжатие данных;  \\ 
-- ''-t'' - переназначить псевдо-терминал для выполнения программ; +- ''-t'' - переназначить псевдо-терминал для выполнения программ;\\ 
-- ''-T'' - послать на выполнение команду, не подключаясь к shell;+- ''-T'' - послать на выполнение команду, не подключаясь к shell;\\
  
 Примеры: Примеры:
Строка 175: Строка 175:
 ===== ssh-agent ===== ===== ssh-agent =====
    
-По простому: +По простому:\\ 
-\- это "связка с ключами". Сначала добавляешь ключи туда через ''ssh-add'', а потом эта чудо-связка сама ищет подходящий для сервера, к которому пытаемся подключится, ключ. +''\''- это "связка с ключами". Сначала добавляешь ключи туда через ''ssh-add'', а потом эта чудо-связка сама ищет подходящий для сервера, к которому пытаемся подключится, ключ.\\ 
-Подробнее: +Подробнее:\\ 
-\- это менеджер ключей для SSH, работающий независимо от последнего, запускаясь при первом включении ''ssh''. Хранит в памяти ключи, избавляя от необходимости вводить ключевую фразу каждый раз при подключении куда то.  Он не записывает ключи на диск и не позволяет экспортировать их.  +''\''- это менеджер ключей для SSH, работающий независимо от последнего, запускаясь при первом включении ''ssh''. Хранит в памяти ключи, избавляя от необходимости вводить ключевую фразу каждый раз при подключении куда то.  Он не записывает ключи на диск и не позволяет экспортировать их. \\ 
-Вот как проверяется ключ пользователя во время SSH-соединения, с точки зрения сервера: +Вот как проверяется ключ пользователя во время SSH-соединения, с точки зрения сервера:\\ 
-- Клиент предоставляет серверу публичный ключ. +- Клиент предоставляет серверу публичный ключ.\\ 
-- Сервер генерирует и отправляет короткое случайное сообщение, прося клиента подписать его с помощью приватного ключа. +- Сервер генерирует и отправляет короткое случайное сообщение, прося клиента подписать его с помощью приватного ключа.\\ 
-- Клиент просит **агента** SSH подписать сообщение и пересылает результат обратно на сервер. +- Клиент просит **агента** SSH подписать сообщение и пересылает результат обратно на сервер.\\ 
-- Сервер проверяет подпись, используя публичный ключ клиента. +- Сервер проверяет подпись, используя публичный ключ клиента.\\ 
-- Теперь у сервера есть доказательство того, что клиент владеет приватным ключом.+- Теперь у сервера есть доказательство того, что клиент владеет приватным ключом.\\
  
 Позже в процессе соединения генерируется набор новых, эфемерных и симметричных ключей, которые используются для шифрования трафика сеанса SSH. Эти ключи могут даже не длиться весь сеанс; событие "''rekey''" происходит через регулярные промежутки времени. Позже в процессе соединения генерируется набор новых, эфемерных и симметричных ключей, которые используются для шифрования трафика сеанса SSH. Эти ключи могут даже не длиться весь сеанс; событие "''rekey''" происходит через регулярные промежутки времени.
Строка 190: Строка 190:
 ==== ssh-add ==== ==== ssh-add ====
  
-команда ssh-agent для добавления ключей к "ключнице", которую ssh-agent автоматически использует для ssh. При запуске без параметров ищет и добавляет стандартные ключи: +команда ssh-agent для добавления ключей к "ключнице", которую ssh-agent автоматически использует для ssh. При запуске без параметров ищет и добавляет ключи со стандартными путями:\\ 
-- ''~/.ssh/id_rsa'' +- ''~/.ssh/id_rsa''\\ 
-- ''~/.ssh/id_ed25519'' +- ''~/.ssh/id_ed25519''\\ 
-- ''~/.ssh/id_dsa''+- ''~/.ssh/id_dsa''\\
 - ''~/.ssh/id_ecdsa'' - ''~/.ssh/id_ecdsa''