7 способов использовать SSH для ускорения соединений с удалёнными серверами

7 способов использовать SSH для ускорения соединений с удалёнными серверами


SSH является повсеместно используемым инструментом для подключения к удалённым серверам, но с его помощью можно выполнять множество различных задач. Вот несколько методов, которые помогут сделать ваши удалённые сессии проще.

7. X Пересылка

Классная недооцененная функция SSH — это возможность перенаправлять графические приложения через X11. Может показаться, что SSH — это просто способ удаленного использования командной строки, но вы также можете запускать полноценные GUI-приложения, хоть и немного медленнее по сети, чем если бы вы сидели за машиной. Эта функция известна как «X forwarding». Это похоже на то, как почта может быть перенаправлена на другой адрес. Машина перенаправляет X-приложения с основной машины на вашу машину.

Это то, что присутствует в X11 с самого начала, хотя через telnet и XDMCP, а не через SSH. SSH более безопасен, и вы должны по возможности избегать использования других протоколов.

Чтобы использовать X-перенаправление, необходимо включить его в конфигурационном файле. В системах Linux он обычно находится по пути /etc/ssh/ssh_config. Вы можете отредактировать его с помощью текстового редактора от имени суперпользователя, например с Vim:

sudo vim /etc/ssh/ssh_config     

Найдите строку, которая содержит «ForwardX11». Вы можете активировать её, удалив начальный символ «#» (решётка), а затем изменив «no» на «yes». Сохраните файл. Возможно, вам придётся перезагрузить сервер или систему.

На большинстве современных систем Linux с systemd команда для этого с использованием systemctl будет следующей:

sudo systemctl restart sshd.service     

Если вы работаете на удалённом сервере, управляемом кем-то другим, вам, возможно, придётся попросить системного администратора сделать это.

После настройки перенаправления X вы можете войти по SSH с опциями -X или -Y:

ssh -X example.com     

После входа в систему вы увидите знакомое приглашение. Чтобы проверить работу X11, сначала проверьте переменную окружения $DISPLAY:

echo $DISPLAY     

Если оно пустое, вероятно, что что-то пошло не так. Проверьте наличие сообщений об ошибках и внимательно проверьте файл конфигурации.

Когда работает пересылка X11, вы можете запускать графические приложения. Их нужно будет запускать в фоновом режиме, добавляя символ «&» (амперсанд). Например, чтобы запустить xeyes:

xeyes &      

Если вы забудете и просто запустите графическое приложение из терминала, вы обнаружите, что оно захватило терминал и не позволяет вам что-либо печатать. Чтобы вернуть оболочку, нажмите Ctrl+Z, а затем введите «bg» в командной строке. Это переведет приложение в фоновый режим.

6. Вход под разными пользователями

Когда вы пытаетесь войти на удаленный сервер через SSH, система предполагает, что вы используете то же имя пользователя, что и на вашем локальном компьютере. Часто это не то, что вам нужно. У вас может быть другое имя учетной записи, чем на локальной машине, или вы можете захотеть войти, используя альтернативную учетную запись, например, чтобы протестировать настройку. Это легко сделать с клиентом SSH.

Вы можете указать пользователя, указав его с помощью символа «@», аналогично адресу электронной почты:

ssh user@example.com      

В качестве альтернативы вы можете использовать опцию -l

ssh -l user example.com      

Конечно, вам нужен правильный аккаунт и пароль, или необходимо настроить ключ, что будет объяснено позже в этой статье.

5. Подключение через различные порты

Сервер SSH по умолчанию будет слушать на порту 22, но некоторые серверы используют другие порты по разным причинам. Если вам было указано использовать другой порт для подключения к серверу, используйте опцию -p.

Например, чтобы подключиться к системе через порт 2222

ssh example.com -l 2222     

Вы можете объединить это с другим именем пользователя и другими опциями:

ssh user@example.com -p 2222     

Если это не сработает, убедитесь, что у вас указан правильный адрес и номер порта. Возможно, вам потребуется открыть порт на локальном файрволе, например, на Windows Firewall, или на удалённом сервере.

4. Выполнять команды при входе в систему

По умолчанию, когда вы входите на удалённый сервер, вам будет предоставлена оболочка для ввода команд, но вы также можете выполнять команды прямо из вашей локальной оболочки. Например, чтобы выполнить команду ls на удалённой системе:

ssh user@example.com ls     

Это выполнит команду ls, отобразит её вывод в вашем терминале, а затем вернётся к локальной командной строке. Это удобно, когда вы хотите быстро выполнить команды на удалённой системе, не выполняя вход и выход. Это также удобно, если у вас есть скрипт или другая программа, которую вы хотите запустить на удалённой машине.

3. Использование альтернативной конфигурации

Помимо задания команд в вашем файле конфигурации, как упоминалось ранее, вы можете задавать их для сессии с помощью опции -o. Это удобно для тестирования новых конфигураций перед их внесением в файл конфигурации.

Простой способ сделать это — использовать другой файл конфигурации.

Для этого используйте опцию -F

ssh -F /path/to/my/config user@example.com     

Вы также можете указывать параметры в командной строке с помощью опции -o. Вы можете включить пересылку X таким образом, аналогично опциям -X и -Y, показанным ранее. См. руководство ssh_config для получения более подробной информации о доступных параметрах. Они одинаковы как в командной строке, так и в конфигурационных файлах.

ssh -o 'ForwardX11 yes' user@example.com     

2. Подробный режим

Если у вас возникли проблемы с подключением, вы можете проверить, как работает SSH, с помощью режима подробного вывода. Или вам просто может быть интересно. Вы можете включить его с помощью опции -v.

ssh -v user@example.com      

Хотя SSH сам по себе краток и не добавляет много информации о соединении во время работы, режим подробного вывода отображает множество данных. Большая часть этой информации будет интересна скорее разработчикам и системным администраторам, чем обычным пользователям. Здесь SSH покажет вам точно, что он делает при установлении соединения и входе в систему.

Если вы просите помощи на форуме или в чате, разработчик может попросить вас использовать эту опцию и скопировать и вставить сессию, чтобы диагностировать любые проблемы с программой или вашей сетью.

1. Настройте ключ для входа без пароля

Вы можете подумать, что пользователи SSH любят печатать, но часто это не так. Одна из вещей, которые могут надоесть при постоянном вводе, — это пароли. К счастью, вы можете сгенерировать ключ, который позволит входить без пароля.

Сначала запустите программу ssh-keygen в вашем локальном терминале.

Он спросит вас, какой вид криптографического ключа использовать. По умолчанию используется Ed25519. Это тот вариант, который следует принять, если только вы не подключаетесь к серверу, требующему определённый тип ключа.

Вам будет предложено ввести необязательную фразу-пароль. Это может быть что-то длинее и сложнее обычного пароля. Если вы решите использовать её, убедитесь, что сможете её запомнить. Если вы забудете её, вы не сможете использовать этот ключ снова. Вы можете просто нажать Enter, чтобы оставить эту фразу-пароль пустой.

ssh-keygen сгенерирует пару ключей, которая включает публичный и приватный ключ. Приватный ключ будет скопирован на удалённый сервер. Приватный ключ будет храниться на вашем компьютере.

Никогда не передавайте свой приватный ключ ни при каких обстоятельствах. Это скомпрометирует пару ключей.

Открытый ключ будет находиться в директории .ssh на системах Linux с расширением .pub. Это обычный текстовый файл. Вы можете открыть его с помощью текстового редактора и скопировать содержимое, используя функции копирования и вставки вашей оконной системы. Затем вы можете войти в удалённую систему, на которой хотите использовать ключ, и вставить этот открытый ключ в файл .ssh/authorized_keys. Директория .ssh не должна быть доступна для чтения другим пользователям системы, так как это представляет риск безопасности, поскольку другие пользователи смогут видеть любые ваши закрытые ключи на системе. SSH откажется работать, если обнаружит неправильные разрешения. Лучше оставить разрешения по умолчанию, установленным при установке SSH. Если необходимо, вы можете использовать команду chmod для изменения разрешений директории.

Вы также можете использовать программу ssh-copy-id. Вы можете запустить её в командной строке.

ssh-copy-id user@example.com     

Вас попросят ввести пароль для вашей учетной записи на удаленной машине. При успешном вводе ваш открытый ключ будет скопирован автоматически. Это может быть менее подвержено ошибкам, чем выполнение этого вручную.


Вы можете удивиться тому, что можно сделать с помощью SSH. Его безопасность и гибкость делают его любимым инструментом специалистов по сетям и вычислениям, которым необходимо управлять удалёнными серверами.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *