Работа по ssh на виртуальном хостинге

Использование PuTTY

Подключение к устройству

  • Чтобы подключиться к устройству, сначала необходимо получить IP-адрес устройства. после загрузки устройства Windows IoT Core на экране, подключенном к устройству, будет отображаться IP-адрес:

  • Теперь запустите выводимый текст и введите IP-адрес в текстовое поле и убедитесь, что выбран переключатель. Затем нажмите кнопку .

  • Если вы подключаетесь к устройству в первый раз с компьютера, вы можете увидеть следующее оповещение системы безопасности. Просто щелкните , чтобы продолжить.

  • Если соединение прошло успешно, на экране появится запрос на вход.
    Введите и нажмите клавишу ВВОД. Затем введите пароль по умолчанию в качестве пароля и нажмите клавишу ВВОД.

    Если вы смогли успешно войти в систему, вы увидите нечто вроде:

Обновление пароля учетной записи

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

Для этого введите следующую команду в консоли выводимых команд, заменив строгим паролем:

настройка устройства Windows IoT Core

  • чтобы иметь возможность развертывать приложения из Visual Studio 2017, необходимо убедиться, что Удаленный отладчик Visual Studio запущена на устройстве Windows IoT Core. Удаленный отладчик должен запускаться автоматически во время загрузки компьютера. Чтобы дважды проверить, используйте команду TList, чтобы вывести список всех запущенных процессов из PowerShell. На устройстве должно быть открыто два экземпляра msvsmon.exe.

  • время ожидания Удаленный отладчик Visual Studio может истекает после длительных периодов бездействия. если Visual Studio не удается подключиться к устройству Windows IoT Core, попробуйте перезагрузить устройство.

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

Чтобы изменения вступили в силу, необходимо перезагрузить устройство. Команду можно использовать следующим образом:

Часто используемые служебные программы

Список команд и служебных программ, которые можно использовать с SSH, см. на странице служебной программы командной строки .

Terminal window and login credentials

After the security alert, you should get a terminal window. By default, this is a black, very bland window. It should first ask for your user name and then password. After these, you should get a command line on the server.

You can then type into the terminal Window. You are now connected to the server, and anything you type in the Window is sent to the server. Server’s responses are displayed in the Window. You can run any text-based applications on the server using the window. The session terminates when you exit the command-line shell on the server (typically by typing ) to the command line or pressing . Alternatively, you can forcibly terminate the session by closing the terminal window.

Как подключиться к серверу по SSH по ключу через PuTTY

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

Но, для того чтобы подключиться к серверу по SSH с использованием ключей, эти ключи нужно сначала сгенерировать. Для этого понадобится программа PuTTYgen (PuTTY Key Generator), которая устанавливается в систему вместе с программой PuTTY. Для генерации ключей запускаем PuTTYgen, выбираем тип ключей «RSA» и нажимаем на кнопку «Generate». После этого нужно подвигать мышкой в окне программы PuTTYgen для того, чтобы создать случайные данные, которые будут использованы для создания ключей.

Обратите внимание, если у вас уже есть ключ, который был сгенерирован с помощью OpenSSH, то вы можете загрузить его в программу PuTTYgen и сконвертировать в формат понятный программе PuTTY

После того как ключи будут созданы, приватный ключ нужно сохранить на диск с помощью кнопки «Save private key». При этом приватный ключ можно дополнительно защитить с помощью ключевой фразы, которую нужно ввести в поле «Key passphrase», хотя это не обязательно.

Что касается публичного ключа, то его нужно скопировать в буфер обмена. Также его можно сохранить на диск с помощью кнопки «Save public key». В дальнейшем этот файл пригодится для настройки других серверов.

Теперь нужно записать публичный ключ на сервер, в конец файла «authorized_keys» в папке «.ssh» в вашей домашней директории. Для этого подключитесь к серверу по SSH с помощью PuTTY используя логин и пароль. После этого откройте папку «.ssh» в вашей домашней директории:

cd ~/.ssh

Дальше необходимо записать ранее созданный публичный ключ в конец файла «authorized_keys». Если такой файл отсутствует, то его нужно создать. Это можно сделать при помощи команды «cat». Для этого нужно выполнить следующую команду:

cat > authorized_keys

После выполнения данной команды вставляем публичный ключ из буфера обмена (правая кнопка мышки) и сохраняем файл нажатием Ctrl-D.

Также вы можете создать и отредактировать файл «authorized_keys» с помощью текстового редактора. Например, в Ubuntu можно использовать программу Nano.  Для этого нужно выполнить команду:

nano ~/.ssh/authorized_keys

Более подробно о создании текстовых файлов можно почитать в отдельной статье «Как создать текстовый файл через терминал».

После того как публичный ключ был скопирован на сервер, вы можете использовать оставшийся приватный ключ для подключения к серверу по SSH. Для этого запустите программу PuTTY и введите IP адрес и порт в разделе «Session».

После этого перейдите в раздел «Connection – SSH – Auth» и укажите путь к приватному ключу, который был сгенерирован и сохранен с помощью программы PuTTYgen. Когда все будет готово можно запускать подключение с помощью кнопки «Open».

Если все было настроена правильно, то перед подключением вы увидите запрос на ввод логина и ключевой фразы (если она использовалась). После ввода этих данных вы будете авторизованы без использования пароля.

После завершения настройки подключения с помощью ключей, вход по паролю в целях безопасности нужно отключить. Для этого на сервере нужно открыть файл «/etc/ssh/sshd_config», установить значение «PasswordAuthentication no» и перезапустить службу «sshd» с помощью команды «systemctl restart ssh».

Загрузка ключа на сервер

Когда генерация ключей завершена, нам осталось только загрузить ключ на сервер. Для загрузки ключа можно использовать несколько способов. В некоторых случаях вы можете указать ключ в панели управления сервером, например, сPanel или любой другой. Но мы такой способ рассматривать не будем. Мы рассмотрим ручные способы.

Самый простой способ скопировать ключ на удаленный сервер — это использовать утилиту ssh-copy-id. Она тоже входит в пакет программ OpenSSH. Но для работы этого метода вам нужно иметь пароль доступа к серверу по SSH. Синтаксис команды:

При первом подключении к серверу система может его не распознать, поэтому вам нужно ввести yes. Затем введите ваш пароль пользователя на удаленном сервере. Утилита подключится к удаленному серверу, а затем использует содержимое ключа id.rsa.pub для загрузки его на сервер в файл ~/.ssh/authorized_keys. Дальше вы можете выполнять аутентификацию с помощью этого ключа.

Если такой способ по какой-либо причине для вас не работает, вы можете скопировать ключ по ssh вручную. Мы создадим каталог ~/.ssh, а затем поместим наш ключ в файл authorized_keys с помощью символа >>, это позволит не перезаписывать существующие ключи:

Здесь вам тоже нужно набрать yes, если вы подключаетесь к новому серверу, а затем ввести пароль. Теперь вы можете использовать созданный ключ для аутентификации на сервере:

Если вы не захотели создать ssh ключ с доступом по паролю, то вы сразу же будете авторизованы, что очень удобно. Иначе, сначала вам придется ввести фразу-пароль для расшифровки ключа.

Подключение к серверу по RDP

Для удаленного подключения к серверам с ОС Microsoft Windows используется протокол удаленного рабочего стола RDP (Remote Desktop Protocol).
Функция «Подключение к удаленному рабочему столу» доступна в Windows по умолчанию. Создавать специальные ключи не потребуется.

Для подключения к серверу используются данные, которые указаны на вкладке Операционная система на странице сервера:

  • публичный IP-адрес сервера (поле IP);
  • логин и пароль для доступа в систему (поля Username и Password).

Подключение по RDP из Windows

Чтобы подключиться к Windows-серверу по RDP:

  1. В поле поиска (меню Пуск) найдите и выберите Подключение к удаленному рабочему столу.
  2. В открывшемся окне в поле Компьютер введите публичный IP-адрес сервера.
  3. Нажмите кнопку Подключиться.
  4. Введите логин и пароль.
  5. Нажмите кнопку OK.

Чтобы подключиться по RDP через терминал, введите команду:

Где:

  • ― публичный IP-адрес сервера;
  • и ― логин и пароль.

Подключение по RDP из macOS

Чтобы подключиться к серверу:

  1. Установите и запустите Microsoft Remote Desktop.
  2. Нажмите +. В поле PC name введите публичный IP-адрес, в полях Username и Password введите имя пользователя и пароль.
  3. Нажмите Save и сохраните изменения.
  4. Для подключения к удаленному серверу дважды нажмите на созданное подключение в списке.

Конфигурационные файлы клиента SSH

/etc/ssh/ssh_config

Общесистемный файл конфигурации клиента SSH.

/etc/ssh/ssh_known_hosts

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

~/.ssh/

Эта директива является стандартным расположением для хранилища конфигураций и информации для аутентификаций специфичных для пользователей. Нет требования хранить всё содержимое этой директории в секрете, но рекомендуется настроить разрешения на чтение/запись/выполнения так, чтобы они были у пользователя, но не были у других.

~/.ssh/config

Это конфигурационный файл с настройками каждого пользователя. Из-за возможного злоупотребления этот файл должен иметь строгие разрешения: чтение/запись для пользователя и недоступность для записи другими.

~/.ssh/known_hosts

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

3.5 Using port forwarding in SSH

The SSH protocol has the ability to forward arbitrary network connections over your encrypted SSH connection, to avoid the network traffic being sent in clear. For example, you could use this to connect from your home computer to a POP-3 server on a remote machine without your POP-3 password being visible to network sniffers.

In order to use port forwarding to connect from your local machine to a port on a remote server, you need to:

  • Choose a port number on your local machine where PuTTY should listen for incoming connections. There are likely to be plenty of unused port numbers above 3000. (You can also use a local loopback address here; see below for more details.)
  • Now, before you start your SSH connection, go to the Tunnels panel (see ). Make sure the «Local» radio button is set. Enter the local port number into the «Source port» box. Enter the destination host name and port number into the «Destination» box, separated by a colon (for example, to connect to a POP-3 server).
  • Now click the «Add» button. The details of your port forwarding should appear in the list box.

Now start your session and log in. (Port forwarding will not be enabled until after you have logged in; otherwise it would be easy to perform completely anonymous network attacks, and gain access to anyone’s virtual private network). To check that PuTTY has set up the port forwarding correctly, you can look at the PuTTY Event Log (see ). It should say something like this:

2001-12-05 17:22:10 Local port 3110 forwarding to
         popserver.example.com:110

You can also forward ports in the other direction: arrange for a particular port number on the server machine to be forwarded back to your PC as a connection to a service on your PC or near it. To do this, just select the «Remote» radio button instead of the «Local» one. The «Source port» box will now specify a port number on the server (note that most servers will not allow you to use port numbers under 1024 for this purpose).

An alternative way to forward local connections to remote hosts is to use dynamic SOCKS proxying. For this, you will need to select the «Dynamic» radio button instead of «Local», and then you should not enter anything into the «Destination» box (it will be ignored). This will cause PuTTY to listen on the port you have specified, and provide a SOCKS proxy service to any programs which connect to that port. So, in particular, you can forward other PuTTY connections through it by setting up the Proxy control panel (see for details).

The source port for a forwarded connection usually does not accept connections from any machine except the SSH client or server machine itself (for local and remote forwardings respectively). There are controls in the Tunnels panel to change this:

  • The «Local ports accept connections from other hosts» option allows you to set up local-to-remote port forwardings (including dynamic port forwardings) in such a way that machines other than your client PC can connect to the forwarded port.
  • The «Remote ports do the same» option does the same thing for remote-to-local port forwardings (so that machines other than the SSH server machine can connect to the forwarded port.) Note that this feature is only available in the SSH 2 protocol, and not all SSH 2 servers support it (OpenSSH 3.0 does not, for example).

You can also specify an IP address to listen on. Typically a Windows machine can be asked to listen on any single IP address in the range, and all of these are loopback addresses available only to the local machine. So if you forward (for example) to a remote machine’s port, then you should be able to run commands such as . This can be useful if the program connecting to the forwarded port doesn’t allow you to change the port number it uses. This feature is available for local-to-remote forwarded ports; SSH1 is unable to support it for remote-to-local ports, while SSH2 can support it in theory but servers will not necessarily cooperate.

Putty – SSH авторизация по сертификатам

Генерируем ключи с помощью ssh-keygen

Для начала необходимо сгенерировать ключи с помощью команды

ssh-keygen

Выполнять данную команду надо без sudo и под тем пользователем, для которого вам необходимо реализовать авторизацию через ssh без пароля. Sudo можно использовать если настраивается доступ для рута. Но в этом случае я бы использовал sudo su.

ssh-keygen предложит вам папку по умолчанию, в которую сохранит ключи. В обычной ситуации стоит оставить этот путь.

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

В конце ssh-keygen покажет куда сохранены открытый и закрытый ключи, отпечаток ключа и рандомную картинку ключа.

SSH авторизация по сертификатам через Putty

Теперь необходимо установить открытый ключ на наш сервер. Используем для этого ssh-copy-id

Устанавливаем ключи с помощью ssh-copy-id

Утилита используемая для доставки ключей на удалённые хосты. Можно применить её на текущий хост указав localhost вместо имени или адреса сервера к которому подключаемся

ssh-copy-id adminguideru@localhost

Если ssh отпечаток системе не знаком, она попросит подтвердить намерения подключения. Пишем yes. Когда утилита запросит пароль от учётной записи в которую мы пытаемся скопировать ключи, вводим его.

Если всё прошло успешно, мы увидим предложение попробовать авторизоваться в системе по ключу с помощью команды

ssh adminguideru@localhost

Если авторизация прошла успешно, мы увидим как запустится консоль сервера. Так как в данном случае мы подключаемся с текущего сервера на него же, какого-либо практического смысла, кроме как для теста, это действие не имеет.. Просто введите exit чтобы разорвать данное “виртуальное” ssh подключение и вывалиться в свою исконную сессию.

Новости PuTTY

21.12.2019 — Русская версия PuTTY 0.73-RU-17

Особенности релиза:

  • Переход на версию PuTTY 0.73.
  • Временно деактивированы патчи, некорректно работающие с последними версиями PuTTY: Cygterm, Background Image, Wincrypt.
  • Другие исправления ошибок и незначительные багфиксы.

29.09.2019 — Релиз PuTTY 0.73

Исправления безопасности:

  • В Windows другие приложения могли привязываться к тому же TCP-порту, что и локальный port-forwarding порт PuTTY (см. vuln-win-exclusiveaddruse).
  • Исправлена ошибка при обработке терминалом режима xterm bracketed paste mode, из-за которой две escape-последовательности, заключенные в скобки, могли появляться вместе, что позволяло ошибочно идентифицировать вставленные данные как ручной ввод с клавиатуры (см. vuln-bracketed-paste-data-outside-brackets).
  • Сервер SSH-1, отправляющий сообщение об отключении, мог вызвать доступ к освобожденной памяти (см. ssh1-disconnect-use-after-free).

Исправления ошибок:

  • Plink под Windows падал при старте, если он действовал как connection-sharing downstream.
  • Теперь PuTTY под Windows корректно обновляет размер окна терминала, если разрешение экрана было изменено, а окно PuTTY в этот момент было развернуто на весь экран.
  • Исправлена ошибка, приводившая к потере символов в конце строк при обработке терминалом цветных сообщений GCC.
  • Исправлено плохое взаимодействие между операцией «Очистить прокрутку», и выделением мыши, которое могло приводить к появлению сообщений об ошибках.

20.07.2019 — Релиз PuTTY 0.72

Исправления безопасности, найденные в рамках финансируемой EU-FOSSA программы Bug Bounty:

  • Целочисленное переполнение при разборе длины пакета SSH-1 (см. vuln-ssh1-buffer-length-underflow).
  • Переполнение буфера в SSH-1, если сервер отправляет два крошечных ключа RSA (см. vuln-ssh1-short-rsa-keys).
  • Клиентский код Pageant под Windows не проверял поле длины ответа, что могло привести к уязвимости во всех инструментах SSH-клиента (PuTTY, Plink, PSFTP и PSCP), если вредоносная программа могла выдать себя за Pageant (см. vuln-win-pageant-client-missing-length-check).

Исправления ошибок:

  • Исправлен сбой при обмене ключами GSSAPI/Kerberos, затрагивающий сторонних поставщиков GSSAPI под Windows (например, MIT Kerberos для Windows).
  • Исправлен сбой при обмене ключами GSSAPI/Kerberos, происходивший если сервер предоставил обычных ключ хоста SSH как часть обмена.
  • Символы доверия («trust sigils» — значки PuTTY в начале локально сгенерированных строк в окне терминал — чтобы отличить их от данных, отправляемых сервером) никогда не отключались в SSH-1 или Rlogin.
  • Символы доверия никогда не включались снова, если пользователь инициировал перезапуск сеанса.
  • PSCP в режиме загрузки SCP мог создавать файлы с ложной новой строкой в конце их имени.
  • PSCP в режиме загрузки SCP с опцией генерировал ложные сообщения о несанкционированном переименовании файлов.
  • Начальное сообщение с инструкцией никогда не выводилось во время SSH keyboard-interactive аутентификации.
  • Вставка очень длинных строк во время совместного использования SSH-соединений могло вызвать падение downstream-окна PuTTY.
  • В раскладках клавиатуры с клавишей «,» на цифровой клавиатуре (например, немецкая) PuTTY под Windows могла вернуть «.» вместо «,».
  • PuTTYgen мог сгенерировать RSA-ключ на один бит короче, чем было запрошено.

Архив новостей:

  • 21.12.2019 — PuTTY 0.73-RU-17
  • 29.09.2019 — PuTTY 0.73
  • 20.07.2019 — PuTTY 0.72
  • 16.03.2019 — PuTTY 0.71
  • 08.07.2017 — PuTTY 0.70
  • 29.04.2017 — PuTTY 0.69
  • 21.02.2017 — PuTTY 0.68
  • 05.03.2016 — PuTTY 0.67
  • 09.12.2015 — PuTTY 0.66-RU-16
  • 07.11.2015 — PuTTY 0.66
  • 25.07.2015 — PuTTY 0.65
  • 28.02.2015 — PuTTY 0.64
  • 15.05.2014 — PuTTY 0.63-RU-15
  • 12.01.2014 — PuTTY 0.63-RU-14
  • 11.11.2013 — PuTTY 0.63-RU-12
  • 06.08.2013 — PuTTY 0.63
  • 23.03.2013 — PuTTY 0.62-RU-11
  • 21.01.2013 — PuTTY 0.62-RU-10
  • 20.02.2012 — PuTTY 0.62-RU-9
  • 10.12.2011 — PuTTY 0.62
  • 02.10.2011 — PuTTY 0.61-RU-8
  • 12.07.2011 — PuTTY 0.61
  • 10.01.2011 — PuTTY 0.60-RU-7
  • 17.12.2010 — PuTTY 0.60-RU-6
  • 19.11.2010 — PuTTY 0.60-RU-5
  • 29.04.2007 — PuTTY 0.60
  • 24.01.2007 — PuTTY 0.59
  • 05.04.2005 — PuTTY 0.58
  • 20.02.2005 — PuTTY 0.57
  • 26.10.2004 — PuTTY 0.56
  • 03.08.2004 — PuTTY 0.55
  • 12.02.2004 — PuTTY 0.54
  • 12.11.2002 — PuTTY 0.53b
  • 01.10.2002 — PuTTY 0.53
  • 14.01.2002 — PuTTY 0.52
  • 14.12.2000 — PuTTY 0.51
  • 16.10.2000 — PuTTY 0.50
  • 28.06.2000 — PuTTY 0.49
  • 18.11.1999 — PuTTY 0.48
  • 27.08.1999 — PuTTY 0.47
  • 09.07.1999 — PuTTY 0.46
  • 22.01.1999 — PuTTY 0.45

Как пользоваться клиентом PuTTY

Наиболее популярный вопрос после установки: как пользоваться программой putty, чтобы она работала корректно. После запуска программы в окне «Сеанс», которое расположено слева вверху, заполняем данные. Окошко для имени хоста или IP-адреса самое верхнее. Порт, используемый для подключения, оставляем тот, который стоит по умолчанию, то есть 22. В окошке тип подключения отмечаем необходимый например SSH и нажимаем соединиться.

Еще ниже расположено окно Управление сеансами где есть пункты загрузки, сохранения, удаления сессии. Стоит прописать название сеанса, нажать кнопку «Сохранить». После этого вам не нужно будет постоянно вводит ip адресс выбирать порт и тип соединения. Нужно будет лишь выбрать из списка необходимый сеанс.

Также придется настроить корректное отображение кириллических символов. Слева выбираем вкладку «Окно», верхнюю ссылку «Внешний вид» , жмем на «Изменить», расположенную справа.

В нижней части окна настройки шрифта из набора символов выбираем «Кириллица».

После нажатия «Ок», зайдите во вкладку «Кодировка», проверьте кодировку, которая настраивает подключаемый сервер. Должно стоять UTF-8. в таком случае программа putty будет корректно отображать русскоязычный текст.

Чтобы подключение через putty прошло успешно, и пользователь смог работать с терминалом, сервером, сетевым маршрутизатором, на стороне, где расположены конечные устройства, должны быть произведены настройки SSH-сервера, открыт порт 22, указанный в настройках программы. На локальном компьютере, с которого будет произведено подключение, рекомендуется отключить защиту Файрволл / Брандмауэра Windows.

Начиная подключение впервые, на экране монитора пользователя появится окошко, предупреждающее на английском языке, что программа будет записывать удаленный ключ шифрования сервера. Из трех вариантов нужно выбрать «Да».

После этого откроется терминал, в котором нужно ввести логин, пароль. Каждый ввод должен заканчиваться нажатием «Enter». Символы не будут видимыми, подтверждением правильности операции станет подключение к серверу. Чтобы управлять системой воспользуйтесь командами Unix, Cisco.

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

Технологию доступа по ключу можно аллегорически представить как если бы секретный ключ был таким маленьким красивым фигурным ключиком с затейливой бороздкой, а публичный — это замочек со скважиной точно под этот ключ, который нужно установить на удалённый сервер.

Откройте программу Puttygen и нажмите кнопку Generate
. Для процесса генерации ключей программа требует совершать произвольные движения «мышью» — для заполнения массива случайных чисел:

Сохраните созданный секретный ключ Save secret key
. При сохранении следует учесть, что с помощью этого ключа можно получить доступ ко всем ресурсам, доступ к которым Вы настроите. Попытайтесь не хранить его на компьютере, куда хотя бы иногда может иметь доступ кто-нибудь ещё. Сохраните например его на флешке. Будет правильным, если ключ будет защищён паролем:

Выделите мышью открытый ключ OpenSSH как показано на рисунке и скопируйте его в буфер обмена:

Откройте PuTTY и установите соединение с сервером используя пароль. Создайте на сервере каталог.ssh командой

Mkdir .ssh

Затем выполните команду echo как показано на рисунке — наберите

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

» >> .ssh/authorized_keys

Настройте PuTTY для работы с секретным ключом. Для этого войдите в раздел Connection->SSH->Auth и выберите путь к сохранённому ключу.

PuTTY — бесплатный клиент для SSH- , Telnet- , rlogin-протоколов, а также протокола TCP, который работает практически на всех платформах. На практике используется для установления удаленного соединения и работы на подключённом с помощью PuTTY узле.

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

Импортируем закрытый ключ в PuTTY

PuTTY – прекрасный и наверное самый лучший SSH клиент для масдая. Который работает без нареканий и обладает всем необходимым функционалом. Бесплатный. Всё в нём хорошо. Но именно на этом поприще они решили отличиться и добавить чуть-чуть геморроя в процесс.

Вместе с PuTTY поставляется утилита PuTTYgen (PuTTY Key Generator).

  1. Запускаем PuTTYgen
  2. Нажимаем кнопку Load
  3. Тип файлов выбираем All Files, выбираем свой текстовичок
  4. Видим сообщение об успешном импорте ключа. При желании можно указать комментарий ( Key comment)
  5. Жмём кнопку Save private key, соглашаемся с отсутствием пароля у ключа

SSH авторизация по сертификатам через Putty – Сохранение сертификатов

Как создать ключи SSH?

Сначала необходимо создать ключи ssh для аутентификации на локальном сервере. Для этого существует специальная утилита ssh-keygen, которая входит в набор утилит OpenSSH. По умолчанию она создает пару 2048 битных RSA ключей, которая подойдет не только для SSH, но и для большинства других ситуаций.

И так, генерация ключей ssh выполняется командой:

Утилита предложит вам выбрать расположение ключей. По умолчанию ключи располагаются в папке ~/.ssh/. Лучше ничего не менять, чтобы все работало по умолчанию и ключи автоматически подхватывались. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub.

Затем утилита предложит ввести пароль для дополнительного шифрования ключа на диске. Его можно не указывать, если не хотите. Использование дополнительного шифрования имеет только один минус — необходимость вводить пароль, и несколько преимуществ:

  • Пароль никогда не попадет в сеть, он используется только на локальной машине для расшифровки ключа. Это значит что перебор по паролю больше невозможен.
  • Секретный ключ хранится в закрытом каталоге и у клиента ssh нет к нему доступа пока вы не введете пароль;
  • Если злоумышленник хочет взломать аутентификацию по ключу SSH, ему понадобится доступ к вашей системе. И даже тогда ключевая фраза может стать серьезной помехой на его пути.

Но все же, это необязательное дополнение и если не хотите, то вы можете просто нажать Enter. Тогда доступ по ключу ssh будет выполняться автоматически и вам не нужно будет что-либо вводить.

Теперь у вас есть открытый и закрытый ключи SSH и вы можете использовать их для проверки подлинности. Дальше нам осталось разместить открытый ключ на удаленном сервере.

Socks–proxy

В этом случае мы можем использовать сервер с SSH–демоном как промежуточный (proxy). Схема сети как в случае #1 (без NAT и штатных прокси):

Чтобы заставить PuTTY исполнять роль socks–прокси, нужно параметры SSH–сессии с 192.168.0.2 на 192.168.0.3 изменить следующим образом:

В результате после успешной авторизации со стороны клиента можно будет наблюдать следующее:

C:\>netstat -ano | find "1080"
  TCP    127.0.0.1:1080     0.0.0.0:0      LISTENING       2392
C:\>tasklist | find /i "2392"
putty.exe                2392 Console        0             5420 КБ

То есть putty, выполняющийся с PID–ом 2392, начинает слушать порт 1080, ожидая подключений. Далее бёрем любое приложение, умеющее работать с SOCKS–прокси, например Firefox, и указываем ему использовать наш прокси:

Теперь все запросы от браузера будут проходить через сервер 192.168.0.3. В логах веб–сайтов, по которым мы таким образом будем ходить, будет отображаться внешний IP–адрес нашего сервера — 111.111.111.111.

P.S. Из help–файла Putty 0.58:

Question A.10.3: What does «PuTTY» mean?

It’s the name of a popular SSH and Telnet client. Any other meaning is in the eye of the beholder. It’s been rumoured that «PuTTY» is the antonym of «getty», or that it’s the stuff that makes your Windows useful… 🙂

Как подключиться по SSH

Для подключения по SSH нам необходимо знать такие данные:

  • ip адрес сервера, к которому мы собираемся подключится;
  • порт, на котором ожидает подключения SSH сервер, по умолчанию используется 22, но в целях безопасности порт подключения ssh часто изменяют;
  • имя и пароль пользователя на удаленном сервере.

Больше ничего не нужно, обычно эти данные присылают в письме вместе с описанием VPS. Теперь перейдем к практике.

1. Подключение через SSH в Linux

В Linux подключение по SSH выполняется с помощью утилиты ssh. Мы более подробно рассматривали работу с ней в статье как пользоваться ssh. Для подключения к удаленному компьютеру ее синтаксис будет выглядеть следующим образом:

$ ssh имя_пользователя@айпи_адрес

Это самый простой вариант, если вам также нужно задать порт, используйте опцию -p:

$ ssh имя_пользователя@айпи_адрес -p порт

Чтобы выполнить подключение по SSH Linux нажмите Ctrl+Alt+T для открытия терминала и наберите команду, заменив нужные значения:

Или, с нестандартным портом:

Если ip_адрес и порт правильные, то на следующем шаге программа попросит у вас ввести пароль:

Если пытаетесь подключится через SSH к этому серверу первый раз, то утилита также попросит подтвердить добавление нового устройства в свой список известных устройств, здесь нужно набрать yes и нажать Enter:

Теперь вы подключены, и все вводимые далее команды будут выполнены на удаленном сервере:

Если же произошла ошибка и IP адрес или порт введены неверно, то вы получите ошибку Connection Refused:

Просто убедитесь что порт введен верно. Если это ваш сервер, то, возможно на нем еще нужно разрешить подключение SSH в брандмауэре. В Ubuntu/Debian для этого на удаленном сервере выполните:

А в CentOS/Fedora:

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

Теперь вы знаете как подключиться по ssh linux и решить проблемы с подключением. А теперь перейдем к Windows.

2. Подключение через SSH в Windows

Раньше подключение по SSH из Windows выполнялось только с помощью сторонних утилит, например PuTTY. Но в Windows 10 был добавлен встроенный OpenSSH клиент и работает он точно так же, как и в Linux. По умолчанию этот компонент не активирован. Для его установки откройте Параметры -> Приложения:

Затем выберите Управление дополнительными компонентами:

Здесь нажмите добавить новый компонент и в открывлемся меню выберите OpenSSH Client и нажмите Устанвоить:

Дальше вернитесь назад и дождитесь завершения установки. После того, как SSH клиент будет установлен нужно обязательно перезагрузить компьютер.

После перезагрузки нажмите Win+R чтобы открыть окно запуска команд и наберите в нем cmd:

Далее нажмите Enter. Перед вами откроется командная строка Windows. Здесь можно использовать утилиту ssh. Синтаксис у нее абсолютно такой же, как и для Linux:

ssh имя_пользователя@айпи_адрес -p порт

Например, такой командой можно подключится по SSH к Raspberry Pi, который находится в вашей локальной сети по адресу 192.168.1.5:

Утилита предложит добавить устройство в список известных:

Затем предложит ввести пароль:

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

Теперь подключиться к серверу по ssh из этой операционной системы также просто как и из Linux.

Linux Terminal Emulators

Все дистрибутивы Linux предоставляют клиентский интерфейс ssh как часть стандартной установки.

  1. Откройте эмулятор терминала и напишите (“ssh» — это команда, это пользователь OpenWrt, к которому вы подключаетесь, а это светодиод по умолчанию OpenWrt)
  2. появится сообщение о принятии нового ключа от устройства OpenWrt, напишите “yes” и нажмите клавишу “Ввод”.
    1. Если по какой-то причине вы переустановили OpenWrt, у устройства будет другой ключ, и вы получите сообщение о несоответствии ключей. В этой ошибке будет указано, что является командной строкой для копирования-вставки в вашем терминале, чтобы удалить старый ключ и продолжить.
  3. если вы хотите закрыть сеанс, напишите “exit”

Обычно у Linux также есть клиенты SCP (для открытия/редактирования/загрузки/выгрузки файлов в OpenWrt), которые могут быть установлены или не установлены по умолчанию. Вам нужно найти документацию вашего дистрибутива или выполнить поиск с помощью интерфейса управления пакетами для “SCP”, чтобы найти, где он находится, и его текущий статус установки. Прочтите его встроенное руководство (“man scp”, например, для клиента командной строки SCP) или google некоторые учебные пособия, чтобы узнать, как его использовать.