Создание ключей SSH
Первый шаг для настройки аутентификации ключей SSH на сервере заключается в том, чтобы сгенерировать пару ключей SSH на локальном компьютере.
Для этого мы можем использовать специальную утилиту , которая входит в стандартный набор инструментов OpenSSH. По умолчанию она создает пару 2048-битных ключей RSA, что подходит для большинства сценариев использования.
Сгенерируйте на локальном компьютере пару ключей SSH, введя следующую команду:
Утилита предложит вам выбрать место размещения генерируемых ключей. По умолчанию ключи хранятся в каталоге внутри домашнего каталога вашего пользователя. Закрытый ключ будет иметь имя , а соответствующий открытый ключ будет иметь имя .
На этом этапе лучше всего использовать каталог по умолчанию. Это позволит вашему клиенту SSH автоматически находить ключи SSH при попытке аутентификации. Если вы хотите выбрать нестандартный каталог, введите его сейчас, а в ином случае нажмите ENTER, чтобы принять значения по умолчанию.
Если ранее вы сгенерировали пару ключей SSH, вы можете увидеть следующий диалог:
Если вы решите перезаписать ключ на диске, вы больше не сможете выполнять аутентификацию с помощью предыдущего ключа. Будьте осторожны при выборе варианта yes, поскольку этот процесс уничтожает ключи, и его нельзя отменить.
Далее вам будет предложено ввести парольную фразу для ключа. Это опциональная парольная фраза, которую можно использовать для шифрования файла закрытого ключа на диске.
Возможно вам будет интересно, в чем заключаются преимущества ключа SSH, если вам все равно нужна парольная фраза. Вот некоторые его преимущества:
- Закрытый ключ SSH (защищенная паролем часть) никогда не доступен через сеть. Парольная фраза используется только для расшифровки ключа на локальном компьютере. Это означает, что парольную фразу нельзя взломать через сеть методом прямого подбора.
- Закрытый ключ хранится в каталоге с ограниченным доступом. Клиент SSH не принимает закрытые ключи, хранящиеся в каталогах, доступ к которым не ограничен. У самого ключа могут быть ограниченные разрешения (чтение и запись доступны только владельцу). Это означает, что другие пользователи системы не смогут создать уязвимость.
- Для попытки взлома защищенного парольной фразой закрытого ключа SSH злоумышленнику уже необходим доступ к системе. Это означает, что у него уже должен быть доступ к учетной записи пользователя или учетной записи root. Если вы окажетесь в такой ситуации, парольная фраза может помешать злоумышленнику сразу же попасть на ваши другие серверы. Это может дать вам достаточно времени, чтобы создать и внедрить новую пару ключей SSH и запретить доступ с взломанным ключом.
Поскольку закрытый ключ недоступен через сеть и защищен системой разрешений, доступ к этому файлу будет только у вас (и у пользователя root). Парольная фраза служит дополнительным уровнем защиты на случай взлома одной из этих учетных записей.
Парольная фраза представляет собой необязательное дополнение. Если вы решите ее использовать, вам нужно будет вводить ее при каждом использовании соответствующего ключа (если вы не используете программный агент SSH, хранящий зашифрованный ключ). Мы рекомендуем использовать парольную фразу, но если вы не хотите ее задавать, вы можете просто нажать ENTER, чтобы пропустить этот диалог.
Теперь у вас есть открытый и закрытый ключи, которые вы можете использовать для аутентификации. Следующим шагом будет размещение открытого ключа на сервере, что позволит использовать аутентификацию SSH для входа в систему.
How to Connect to a Remote Windows Computer via SSH?
Now you can try to connect to your Windows 10 computer using the SSH client (I’m using putty in this example).
You can use the built-in Windows SSH client to connect to a remote host. To do this, open the command prompt and run the following command:
In this example, max is the username on the remote Windows computer, and 192.168.13.12 is the IP address or DNS name of the computer.
Note that you can use the following username formats when connecting to Windows via SSH:
- – local Windows user
- – Active Directory user or Microsoft/Azure account (use the UserPrincipalName format)
- – NetBIOS name format
In an Active Directory domain, you can use Kerberos authentication in SSH. To do this, you need to enable the following directive in sshd_config:
GSSAPIAuthentication yes
You can now transparently connect to an SSH server from a domain-joined Windows machine with a domain user session. In this case, the user’s password will not be requested, and SSO authentication via Kerberos will be performed:
The first time you connect, you will be prompted to add the host to the list of known SSH hosts ().
Click , and login under your Windows user account.
If the SSH connection is successful, you will see the cmd.exe shell prompt.
admin@win10pc C:\Users\admin>
You can run different commands, scripts, and apps in the SSH command prompt.
I prefer working in the PowerShell console. To start it, run:
In order to change the default cmd.exe shell in OpenSSH to PowerShell, make changes to the registry using the following PowerShell command:
Restart your SSH connection and make sure that PowerShell is now used as a default SSH shell (this is indicated by the prompt ).
The PowerShell prompt has been started in my SSH session, where the usual functions work: tab autocomplete, PSReadLine syntax highlighting, command history, etc. If the current user is a member of the local administrators’ group, all session commands are executed elevated even if UAC is enabled.
OpenSSH server on Windows can be used in various SSH tunneling scenarios.
How to Install OpenSSH Server on Windows?
The OpenSSH Server package is a part of all modern versions of Windows 10 (starting with 1803), Windows 11, and Windows Server 2022/2019 as a Feature on Demand (FoD). To install the OpenSSH server, open the elevated PowerShell prompt and run the command:
Or using DISM:
If your computer is directly connected to the Internet, the OpenSSH.Server package will be downloaded and installed on Windows.
You can also install OpenSSH on Windows 10/11 through the modern Settings panel (Settings -> Apps and features -> Optional features -> Add a feature). Find Open SSH Server in the list and click Install.
You can also install the Remote Server Administration Tools (RSAT) from here.
On computers in disconnected (offline) environments, you can install the OpenSSH Server from the Feature on Demand ISO image (available in your account on the Microsoft websites: MSDN or my.visualstudio.com). Download the ISO and extract its contents to the E:\FOD folder (you can only extract the file ) and install the Windows feature from the local repository:
An MSI installer for OpenSSH for Windows is also available in the official Microsoft repository on GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases/). For example, for Windows 10 x64, you need to download and install the OpenSSH-Win64-v8.9.1.0.msi package. The following PowerShell command will download the MSI file and install the OpenSSH client and server on your computer:
You can install an OpenSSH server in previous Windows versions as well (Windows 8.1, Windows Server 2016/2012R2/2012). Check the example on how to install and configure Win32-OpenSSH in the article “How to Configure SFTP Server (SSH FTP) on Windows?”.
To make sure the OpenSSH server has been installed, run the command:
State : Installed
Configuring SSH Server on Windows
After installing the OpenSSH server on Windows, two services are added:
- ssh-agent (OpenSSH Authentication Agent) – can be used to manage private keys if you have configured SSH key authentication;
- sshd (OpenSSH SSH Server).
You need to change the startup type of the sshd service to automatic and start the service using PowerShell:
Name DisplayName Description Enabled ---- ----------- ----------- ------- OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Inbound rule for OpenSSH SSH Server (sshd) True
If the rule is disabled (Enabled=False) or missing, you can create a new inbound rule using the New-NetFirewallRule cmdlet:
By default, key OpenSSH components are located in these folders:
- OpenSSH Server executables: (sshd.exe, ssh.exe, ssh-keygen.exe, sftp.exe, etc.)
- The sshd_config file (created after the first service start of the service):
- The authorized_keys file and keys can be stored in the user profile folder:
Enable the OpenSSH Server in Windows 10
- Open the Settings app and go to Apps -> Apps & features.
- On the right, click Manage optional features.
- On the next page, click the button Add a feature.
- In the list of features, select OpenSSH Server and click on the Install button.
- Restart Windows 10.
This will install the OpenSSH Server software in Windows 10.
Its binary files are located under the folder . Besides the SSH client apps, the folder contains the following server tools:
- sftp-server.exe
- ssh-agent.exe
- ssh-keygen.exe
- sshd.exe
- and the config file «sshd_config».
The SSH server is configured to run as a service.
At the moment of this writing, it doesn’t start automatically. You need to configure it manually.
Как подключаться по SSH?
Для подключения к удаленной машине по SSH нужен клиент — специальная программа. В *nix-подобных системах (Linux, macOS) клиент обычно установлен в системе по умолчанию, поэтому достаточно просто открыть терминал.
Для подключения нужно указать адрес сервера и, опционально, имя пользователя и порт. Вот как выглядит команда при использовании консольного клиента (в терминале):
Например, для подключения к серверу в аккаунт нужно ввести:
Если не указывать порт, то будет использован порт SSH по умолчанию — . Используемый порт задается при настройке SSH-сервера — программы, которая запущена на удаленном компьютере и ожидает подключения извне.
Fingerprint
При первом подключении появится сообщение:
Введите в первый раз.
Это нужно для повышения безопасности. При настройке SSH-сервера создается уникальная комбинация символов — fingerprint («отпечатки пальцев»). Ваш компьютер запоминает эту комбинацию и сверяет ее при каждом новом соединении. Представьте, что кто-то внёс изменения в систему, например:
- Переустановил SSH-сервер
- Переустановил всю операционную систему
- Заменил удаленный компьютер, сохранив его адрес
Даже в этом случае вы заметите изменения, потому что fingerprint тоже изменится.
Если fingerprint не меняется, то такое сообщение не будет появляться.
Другая переадресация
Наряду с переадресацией соединений SSH также поддерживает другие виды переадресации.
Вы можете пересылать любые ключи SSH, хранящиеся в агенте на локальной машине, что позволяет подключаться из удаленной системы, используя учетные данные локальной системы. Также можно запускать приложения в удаленной системе и пересылать графический дисплей в локальную систему с помощью пересылки X11.
ForwardAgent: Эта опция позволяет передавать ключи аутентификации, хранящиеся на локальном компьютере, в систему, к которой вы подключаетесь. Она позволяет переходить от хоста к хосту с помощью домашних ключей.ForwardX11: Если вы хотите перенаправить графический экран приложения, работающего в удаленной системе, вы можете включить этот параметр.
Эти опции используют значения yes и no.
Как запустить сервер OpenSSH в Windows 10
- Дважды щелкните sshd , чтобы открыть его свойства.
- На вкладке «Вход в систему» просмотрите учетную запись пользователя, которая используется сервером sshd. В моем случае это NT Service sshd .
- Теперь откройте командную строку с повышенными привилегиями.
- Перейдите в каталог c: windows system32 Openssh с помощью команды .
- Здесь запустите команду , чтобы сгенерировать ключи безопасности для сервера sshd.
- Теперь в командной строке с повышенными привилегиями введите , чтобы запустить проводник в папке OpenSSH.
-
Обновление : Microsoft опубликовала учебник , который упрощает процесс правильного назначения. Откройте PowerShell от имени администратора и выполните следующие команды:
Install-Module -Force OpenSSHUtilsRepair-SshdHostKeyPermission -FilePath C: Windows System32 OpenSSH ssh_host_ed25519_key
Вот и все! Все необходимые разрешения установлены.
- В качестве альтернативы вы можете выполнить следующие действия. Щелкните правой кнопкой мыши ssh_host_ed25519_key и измените его владельца на пользователя службы sshd, например, NT Service sshd .
- Нажмите« Добавить »и добавьте разрешение« Чтение »для пользователя« NT Service sshd ». Теперь удалите все другие разрешения, чтобы получить что-то вроде этого: Нажмите” Применить ” d подтвердите операцию.
- Наконец, откройте службы (нажмите клавиши Win + R и введите services.msc в поле «Выполнить») и запустите службу sshd. Он должен запуститься:
- Разрешить порт SSH в брандмауэре Windows. По умолчанию сервер использует порт 22. Запустите эту команду в командной строке с повышенными привилегиями: Microsoft предоставила следующую альтернативную команду для PowerShell:
- Наконец, установите пароль для своей учетной записи, если вы не у меня его нет.
Теперь вы можете попробовать это в действии.
Left pane configuration options
More options can be found in the left pane titled Category. Select a category from the tree, and the right pane will change to show configuration options for that category. The initally shown options belong to the Session category.
Only the more relevant options are described here. There are lots of options, and most of them would never be used.
Terminal options
The options in this category influence terminal emulation and keyboard mappings. They are largely self-explanatory, and will not be covered here. Very few people need to touch these. Some people may change how the bell character is handled; people using exotic operating systems might change what is sent by the backspace or delete character.
Window options
The window options influence the appearance and behavior of the terminal window. It can also specify how characters are translated on output and to select fonts and colors for the window.
Подключение к Linux через SSH
Наряду с правильным IP-адресом у вас также должны быть имя пользователя и пароль для доступа к удаленному компьютеру.
Для инструментов SSH командной строки используйте
ssh [email protected]
Обязательно замените имя пользователя фактическим именем пользователя, а REMOTE.IP.ADDRESS.HERE — IP-адресом удаленного устройства. Нажмите Enter, и вам будет предложено ввести пароль.
С правильным паролем вы получите работающую подсказку терминала — теперь вы вошли на удаленный компьютер.
Используете настольный клиент SSH, например PuTTY?
Введите имя хоста или IP-адрес , выберите тип подключения SSH , затем « Открыть». Когда будет предложено ввести имя пользователя и пароль, введите их в окне командной строки, чтобы завершить подключение и получить удаленный доступ.
Как подключиться по SSH с помощью PuTTY
Самой простой и проверенной утилитой для подключиться по SSH к VPS-серверу на данный момент является PuTTY. В ней есть классический юзер-интерфейс, в котором можно легко разобраться пользователям Windows.
Установка PuTTY
Попадаем на страницу скачивания утилиты, чуть ниже в блоке Package Files находим пункт MSI (‘Windows Installer’) и скачиваем установщик в формате . Выбираем тот, который соответствует разрядности нашей Windows.
Сама по себе установка довольно понятная и простая, описание каждого шага скорее всего не требуется.
Настройка и подключение по SSH
Теперь, когда PuTTY установлен, от подключения нас отделяет лишь один довольно простой шаг. Нужно выставить настройки, введя IP-адрес и SSH-порт сервера. Форма с этими настройками открывается сразу, после запуска утилиты.
Если мы покупали VPS-сервер у хостинг-провайдера, то он должен выдать после покупки данные для подключения примерно в таком виде:
- IP-адрес сервера: 80.90.255.255
- Логин: root
- Пароль: xvFkWsIys
Имея под рукой данные для подключения, открываем установленную PuTTY и вводим в основную форму IP-адрес и порт. Если хостинг-провайдер не указал SSH-порт конкретно, значит по-умолчанию он 22.
Если вы планируете подключаться к серверу в будущем, то следует его сохранить. Для этого в поле Saved Sessions вводим произвольное название для этих настроек, например и нажимаем Save.
После чего в списке ниже под должна появиться добавленная строчка . Теперь все готово к подключению, нажимаем Open
После нажатие кнопки откроется командная строка. И если мы правильно ввели IP-адрес сервера и порт, то нас спросят логин. В примере у нас используется root:
login as: root
Далее запрашивается пароль. Его можно ввести вручную или вставить из буфера обмена. При вводе пароля не будут появляться звездочки или какие-либо условные символы, это нормально. После ввода пароля вы попадаете в командную строку сервера, к которому подключались.
[email protected]'s password: Linux debian9 5.4.40-04224-g891a6cce2d44 #1 SMP PREEMPT Tue Jun 23 20:21:29 PDT 2020 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@server:~#
Готово, теперь все введенные команды будут выполнятся на сервере. Чтобы прервать SSH-сессию нужно нажать Ctrl + D или просто закрыть окно.
Services Start
In order to start using OpenSSH Server, the associated services will need to be started first. This can be done through either the Services MMC console or through the Command Line.
Services MMC Console
Open the Services MMC Console (Win + R, and type in services.mmc) and find the two Services that are related to OpenSSH Server:
- OpenSSH Authentication Agent
- OpenSSH Server
Right-click on each service and select Properties. Under Service Status, click the Start button to start the service. To configure the service to start automatically at boot, change the Startup Type drop-down menu to Automatic and click Apply.
There are two services that are related to OpenSSH Server which need to be set to start automatically.
Command Line Services
To start the OpenSSH Server services and enable them to run automatically, there are a few command that you will need to run. To do this, open an elevated PowerShell console and run the following commands to start the OpenSSH Server:
To have these services start automatically at boot, there are two additional commands to run as well:
After this has been completed, you should be able to connect to your Windows installation over SSH.
Настройка SSH
Настройка будет происходить под выделенный сервер, VDS, VPS на Debian, Ubuntu. Конфигурационный файл располагается тут: .
Если у вас обычный хостинг, всё и так должно быть настроено как надо, переходите к разделу авторизации по ключам.
По умолчанию, демон SSHD (именно в него мы вносим изменения) не нуждается в каких-либо настройках и работает нормально. Мы внесём лишь пару небольших изменений с целью ограничить доступ нежелательных лиц к серверу.
В результате внесения неправильных изменений в конфигурационный файл вы можете потерять доступ к серверу по ssh, поэтому убедитесь, что у вас есть альтернативные варианты для доступа к нему, например, с помощью панели управления ISPManager.
Проверка службы SSH на сервере
Доступ по SSH обычно можно включить при создании сервера или во время настройки конфигурации. Убедиться в том, что он разрешен, можно через консоль. Она доступна в панели управления сервером.
Например, у меня VDS на Timeweb. Чтобы попасть в консоль, я авторизуюсь по логину и паролю, выданному хостером, выбираю свой сервер в списке VDS и перехожу на вкладку «Консоль».
Чтобы пользоваться консолью, нужно авторизоваться. Логин и пароль для доступа к серверу хостер присылает в письме. Сначала нужно ввести логин и нажать на клавишу Enter. Появится строка Password. В ней необходимо ввести пароль и снова нажать на клавишу Enter.
Важно: в целях безопасности при вводе пароля на экране не отображаются никакие символы, даже привычные звездочки.
После авторизации в консоли можно проверить, запущена ли служба SSH на сервере.
Выполните команду systemctl status sshd.
Обратите внимание на строчку Active. В ней должна быть выделенная зеленым запись active (running)
Это состояние говорит о том, что служба запущена.
Если служба не активна, добавьте ее самостоятельно. Выполните команду sudo apt install openssh-server и подтвердите установку пакетов.
Кроме того, для подключения вам может понадобиться настройка брандмауэра. Чтобы межсетевой экран не блокировал входящие соединения, можно на время отключить его командой sudo ufw disable.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Checking SSH Connection Logs in Windows
By default in Windows SSH server connection logs are written not to text files, but to a separate event log via Event Tracing for Windows (ETW). Open the Event Viewer console ( ) and navigate to Application and services logs -> OpenSSH -> Operational.
If you successfully connect to the SSH server using a password, an event will appear in the log:
EventID: 4 sshd: Accepted password for root from 192.168.1.53 port 65749 ssh2
If SSH key authentication was performed, you will see the following event:
sshd: Accepted publickey for locadm from 192.168.1.53 port 61426 ssh2: ED25519 SHA256:FEHDEC/G42FS23209C2KMb4335923pigN31s3qMK322lGibD
If you want the SSH connection logs to be written to a local text file, you need to enable the following parameters in the sshd_config file:
SyslogFacility LOCAL0 LogLevel INFO
Restart the sshd service and make sure that the SSH server logs are now written to a plain text file C:\ProgramData\ssh\logs\sshd.log
You can use a secure SSH connection with PSRemoting to manage remote computers via WinRM.
Сохрани настройки подключения к хостам
Если ты работаешь с большим количеством хостов под именем разных юзеров с использованием разных ключей, то ты существенно упростишь свою жизнь, если создашь для этих хостов шорткаты. Например, следующие строки ~/.ssh/config описывают два хоста:
- example.com, SSH-сервер на котором «висит» на порту 2222, а в качестве ключа используется ~/my_key.pem;
-
192.168.33.10, с SSH-сервером на стандартном порту, юзером root и принудительным отключением аутентификации с помощью ключа.
Теперь, чтобы подключиться к example.com, нет нужды набирать длинную команду
Можно использовать шорткат:
Включение сервера OpenSSH в Windows 10
- Откройте приложение «Настройки» и выберите «Приложения» -> «Приложения и функции».
- Справа нажмите «Управление дополнительными функциями».
- На следующей странице нажмите кнопку Добавить функцию .
- В списке функций выберите Сервер OpenSSH и нажмите на Кнопка Установить .
- Перезагрузите Windows 10.
Это установит программное обеспечение OpenSSH Server в Windows 10.
Его двоичные файлы находятся в папке . Помимо клиентских приложений SSH, в папке находятся следующие серверные инструменты:
- sftp-server.exe
- ssh-agent.exe
- ssh-keygen.exe
- sshd.exe
- и файл конфигурации “sshd_config”.
Сервер SSH настроен для работы как служба.
На момент написания этой статьи он не запускался автоматически. Вам нужно настроить его вручную.
Требования
Для работы вам понадобятся базовые знания SSH и некоторых параметров подключения. Вы также можете настроить SSH-аутентификацию на основе ключей для некоторых ваших пользователей или хостов (по крайней мере, для тестирования).
Структура и алгоритм интерпретации конфигурационного файла SSH
Каждый пользователь локальной системы может поддерживать конфигурационный файл SSH на стороне клиента. Этот файл может содержать любые параметры подключения, которые нужно использовать в командной строке, что позволяет автоматически обрабатывать их при подключении. Значения, определенные в конфигурации, всегда можно переопределить во время соединения с помощью обычных флагов ssh.
Расположение конфигурационного файла клиента SSH
Клиентский конфигурационный файл называется config, он находится в домашнем каталоге пользователя, в подкаталоге конфигурации .ssh. Часто этот файл не создается по умолчанию, поэтому вам может понадобиться создать его самостоятельно:
touch ~/.ssh/config
Conclusion
The ability to run a secure shell server on a Windows machine makes remote administration or use even easier than just adding a third-party solution such as LogMeIn or TeamViewer. When you don’t need a full-blown GUI for remotes, you want to know you’re getting in to your machine with at least a modicum of security–freeSSHd offers that in the true UNIX/Linux fashion. Slap this little beauty on one of your Windows machines, and see if it makes your life easier.
Daily Tech Insider Newsletter
Stay up to date on the latest in technology with Daily Tech Insider. We bring you news on industry-leading companies, products, and people, as well as highlighted articles, downloads, and top resources. You’ll receive primers on hot tech topics that will help you stay ahead of the game.
Delivered Weekdays
Sign up today
Перенаправление локального порта
Перенаправление локального порта позволяет вам перенаправить порт на локальном (ssh-клиент) компьютере на порт на удаленном (ssh-сервере), который затем перенаправляется на порт на конечном компьютере.
В этом типе пересылки клиент SSH прослушивает данный порт и туннелирует любое соединение с этим портом на указанный порт на удаленном сервере SSH, который затем подключается к порту на конечном компьютере. Конечный компьютер может быть удаленным SSH-сервером или любым другим компьютером.
Перенаправление локальных портов в основном используется для подключения к удаленной службе во внутренней сети, такой как база данных или сервер VNC.
В Linux, macOS и других системах Unix, чтобы создать переадресацию локального порта, передайте параметр клиенту :
Используются следующие параметры:
- — IP-адрес и номер порта локального компьютера. Если опущен, клиент ssh привязывается к локальному хосту.
- — IP или имя хоста и порт конечного компьютера.
- — удаленный пользователь SSH и IP-адрес сервера.
В качестве можно использовать любой порт с номером больше . Порты с номерами меньше являются привилегированными и могут использоваться только пользователем root. Если ваш SSH-сервер прослушивает порт, отличный от 22 (по умолчанию), используйте параметр .
Имя хоста назначения должно разрешаться с сервера SSH.
Допустим, у вас есть сервер базы данных MySQL, работающий на машине во внутренней (частной) сети, на порте 3306, который доступен с машины , и вы хотите подключиться к базе данных с помощью клиента MySQL на локальном компьютере. сервер. Для этого вы можете перенаправить соединение, используя следующую команду:
После запуска команды вам будет предложено ввести пароль удаленного пользователя SSH. После входа вы войдете на удаленный сервер, и туннель SSH будет установлен. Также рекомендуется настроить аутентификацию на основе ключей SSH и подключаться к серверу без ввода пароля.
Теперь, если вы базы данных на компьютере , соединение будет перенаправлено на MySQL через компьютер который действует как промежуточный сервер.
Вы можете перенаправить несколько портов в несколько пунктов назначения с помощью одной команды ssh. Например, у вас есть другой сервер базы данных MySQL, работающий на компьютере , и вы хотите подключиться к обоим серверам со своего локального клиента, вы должны запустить:
Чтобы подключиться ко второму серверу, вы должны использовать .
Когда целевой хост совпадает с SSH-сервером, вместо указания IP-адреса или имени хоста назначения вы можете использовать .
Допустим, вам нужно подключиться к удаленному компьютеру через VNC, который работает на том же сервере и недоступен извне. Вы бы использовали следующую команду:
Параметр указывает команде работать в фоновом режиме, а не выполнять удаленную команду. Мы используем потому что VNC и SSH-сервер работают на одном хосте.
Если у вас возникли проблемы с настройкой туннелирования, проверьте конфигурацию удаленного SSH-сервера и убедитесь, что для параметра не задано значение . По умолчанию пересылка разрешена.
Используй специальную версию SSH для неустойчивых соединений
SSH не рассчитан на работу в условиях неустойчивого интернет-соединения, поэтому не умеет адекватно реагировать на потерю пакетов. Фактически, если соединение оборвется, SSH просто повиснет и будет находиться в таком состоянии, пока не закончится тайм-аут. До тех пор пока ты используешь надежное оптоволоконное соединение, это не проблема, но как только попадаешь в условия жесткой российской глубинки, где даже 3G может быть экзотикой, SSH превратится в невыносимо тупой инструмент.
Решить проблему можно с помощью autossh. Это обертка над SSH, которая умеет проверять жизнеспособность канала. Autossh создает дополнительное SSH-соединение с сервером и непрерывно шлет по нему heartbeat-пакеты. Если пакет не доходит до адресата, autossh считает канал мертвым и перезапускает SSH-соединение.
Пользоваться очень просто:
По умолчанию тайм-аут между посылкой heartbeat-пакетов составляет десять минут, что слишком много. Для уменьшения тайм-аута пропиши его в переменную AUTOSSH_POLL перед запуском autossh (значение в секундах):
Есть вариант еще лучше: mosh. Это специально оптимизированная для неустойчивых и низкоскоростных соединений версия SSH, работающая по протоколу UDP. Mosh позволяет получить быстрое и отзывчивое соединение даже на очень медленном канале и из коробки умеет поднимать упавшее соединение и даже переключать клиента с одного IP на другой (при переключении с Wi-Fi-соединения на мобильное, например) без перезапуска сессии.
У mosh всего один недостаток: он требует установки не только на локальную машину, но и на удаленную. Зато после этого ничего настраивать не нужно, достаточно использовать команду mosh вместо ssh. Более того, mosh уже встроен в SSH-клиенты JuiceSSH для Android и Blink для iOS.