PuTTY горячие клавиши
Основное и самое главное – копировать/вставить, чтобы скопировать текст с любого места в буфер обмена необходимо нажать сочетание клавиш Ctrl-C и вставить в окно PuTTY используя горячие клавиши Shift-Insert или нажав правую кнопку мыши, тем самым текст вставится в консоль. Если нужно скопировать/вставить текст в самом окне PuTTY, тогда просто выделите текст в окне и вставьте таким же образом, как указано ранее.
Ctrl+A – переход к началу строки
Ctrl+C – завершить текущую команду
Ctrl+D – прекращение сеанса работы (команда «exit»)
Ctrl+L – смещение экрана, все что было ранее введено переместиться в самый вверх
Ctrl+P – вывод ранее введенных команд (нажатие стрелкок Вверх/Вниз)
Ctrl+U – удалить строку
Ctrl+W – удалить одно слово в текущей строке
Виды ssh-туннелей
Есть несколько способов организации SSH-туннеля. Выбор типа туннеля зависит от той задачи, которую вы хотите решить.
1. Прямой SSH-туннель: подключаемся к серверу за NAT
Прямой ssh-туннель применяется для того, чтобы перенаправить соединение с заданным TCP-портом на локальном (клиентском) хосте на порт удаленного хоста (сервера). Всякий раз, когда устанавливается соединение с локальным портом или сокетом, соединение пересылается по защищенному каналу, ис удаленного компьютера устанавливается соединение либо с хост-портом, либо с сокетом Unix.
Практический пример:
Вам очень нужно подключится к корпоративному веб-сайту, но сделать это из сети интернет нет возможности так как на корпоративном роутере не проброшен через NAT 80 порт. Но на роутере есть ssh-сервер к которому можно подключиться из сети интернет.
Вы устанавливаете соединение SSH-сервером роутера (внешний ip 1.1.1.1), но перед логином с паролем передаете аргумент -L (local port) с правилами проброса порта (точка входа и трансляция). Например, точкой входа будет локальный порт вашего компьютера 8080, который будет транслироваться на 80 порт корпоративного веб сервера (ip 172.16.0.2).
После успешного создания ssh-туннеля корпоративный веб-сайт будет доступен вам по локальному адресу http://127.0.0.1:8080.
Кстати, локальный ip можно не указывать и сократить строку подключения до следующего вида:
Как проходят пакеты по прямому ssh-туннелю:
- На ssh-клиенте TCP-пакеты с адресом источника Src 127.0.0.1:65235 и адресом назначения Dst 127.0.0.1:8080 отправляются в сокет открытый процессом SSH 127.0.0.1:8080;
- Процесс SSH переписывает адрес назначения tcp-пакета согласно заданного правила трансляции на 172.16.0.2:80 и отправляет на ssh-сервер роутера;
- Процесс SSHD на роутере смотрит адрес назначение tcp-пакета и отправляет его на порт веб-сервера 172.16.0.2:80. При этом адрес источника Src 127.0.0.1:65235 роутер переписывает на свой 172.16.0.1:11505, чтобы веб сервер отправил ответный пакет роутеру, а не на свой локальный адрес 127.0.0.1.
1.1 Прямой SSH-тунель с перенаправление на локальный порт SSH-сервера
Прямой ssh-тунель можно использовать для подключения к другому порту хоста, на котором установлен ssh-сервер. Например, у вас нет доступа к веб-интерфейсу роутера из сети интернет, но есть к порту ssh. Вы создаете ssh-сеанс с аргументом -L, а в качестве точки входа и адреса трансляции указываете сокеты соответственно 127.0.0.1:8080 и 127.0.0.1:88 (в реальности веб-интерфейсы используют порт 80).
Таким образом веб-интерфейс роутера станет доступен на локальном сокете вашего компьютера по адресу http://127.0.0.1:8080.
1.2. Прямой SSH-туннель с предоставлением доступа другим участникам сети
Есть еще один весьма интересный способ создания прямого ssh-туннеля — туннель с предоставление доступа другим участникам своей локальной сети. По сути, этот тот же прямой туннель, но в качестве точки входа указан не локальный адрес хоста, а его адрес в локальной сети — например, 192.168.0.1.
Таким образом любой участник локальной сети сможет подключиться на удаленный веб-ресурс через ssh-туннель по адресу http://192.168.0.1:8080.
Если для локальной точки входа указать адрес 0.0.0.0:8080, то доступ к туннелю можно будет получить из любой логической сети. Это может быть удобно в случае получения адреса от dhcp-сервера, так как избавляет от необходимости выяснять какой ip получен.
Как подключиться к серверу без пароля
Не всегда удобно каждый раз вводить пароль для входа на удаленное устройство. Комфортнее, когда вход выполняется автоматически и без лишних усилий. В PuTTY существует такой способ – использование авторизации по ключу SSH. Настроить его можно следующим образом:
- Для выполнения данной операции нам потребуется отдельная утилита под названием «PuTTYgen». Она автоматически устанавливается вместе с PuTTY, поэтому зайдем в меню «Пуск» и запустим ее оттуда.
- Далее перемещаемся в меню «Key» и устанавливаем значение «SSH-2 RSA key». После этого кликаем по кнопке «Generate key pair».
- Как только ключ будет сгенерирован, сохраним его в публичном и приватном варианте.
- Теперь перемещаемся в PuTTY и открываем раздел «Auth» — в него добавляем приватный ключ.
- Открываем раздел «Session» и сохраняем в нем пресет для подключения, как мы делали ранее. Затем подключаемся к серверу по своему адресу.
- Осталось подключиться к серверу и отправить на него открытый ключ. Для этого вставляем его в конец файла /root/.ssh/authorized_keys. Ключ мы можем скопировать напрямую из утилиты, в которой он был сгенерирован.
Готово! Теперь при повторном входе на сервер авторизация не потребуется. Главное – сохранить настройки сессии, чтобы не вводить ключ каждый раз.
Сегодня мы разобрали одну из важнейших тем, с которой сталкивается каждый, кто начинает изучать администрирование серверов. Использование PuTTY позволяет подключаться по протоколу SSH и удаленно работать с компьютером на операционной системе Linux. Такой способ позволяет легко администрировать устройство и всегда быть в курсе возникающих проблем. Надеемся, что наша статья была полезной, и у вас не осталось вопросов
Спасибо за внимание!
Общее описание PuTTY
Как пользоваться программой? Какие использовать настройки для работы? PuTTY — свободно распространяемая программа. Идеально подходит для SSH-соединения и позволяет безопасно управлять сервером локально, в местной сети, и удаленно, через интернет. Можно применять PuTTY для управления устройствами, подключенными к последовательному порту и проектировать последовательности SSH-туннелей через несколько серверов.
Программа не требует настройки, просто запускается и сразу обеспечивает нужный функционал. Работает надежно, предлагает компактный полнофункциональный интерфейс. Слева категории, которые определяют дизайн и функционал, справа данные сессии и возможность выбирать и конфигурировать соединения, которые необходимы.
После подключения PuTTY обеспечивает эмуляцию терминала (командную строку сервера). Пользователь получает «окно системы», которая ответила на подключение.
Работа происходит непосредственно с удаленным компьютером в системе, к которой выполнено подключение. Нужно ввести имя и пароль, а далее использовать команды сервера.
Как пользоваться PuTTY
1. Интерфейс программы
Сразу же после запуска программы из меню пуск вы увидите графический интерфейс ее настройки. После подключения вы будете видеть только терминал, но настроить программу можно через удобный интерфейс.
Рассмотрим за что отвечают те или иные вкладки программы, чтобы вы ориентировались что и где искать. У нас есть четыре вкладки:
- Session — отвечает за подключение удаленному серверу, тут мы вводим параметры подключения, порт, адрес, а также можем сохранить все настройки putty, чтобы не настраивать каждый раз заново.
- Terminal — позволяет включать или отключать возможности терминала;
- Window — настройка внешнего вида окна, цвет, шрифт, кодировка;
- Connection — настройка параметров подключения, алгоритма шифрования, сжатия, ключей аутентификации, X11 и других параметров.
Каждая вкладка имеет несколько подразделов, но мы не будем сейчас их трогать, а перейдем сразу к практике и посмотрим как подключиться putty к удаленному узлу.
2. Подключение к удаленному компьютеру PuTTY
Чтобы подключиться к удаленному компьютеру по SSH перейдите на вкладку «Session», здесь, в поле «Host Name» необходимо прописать ip адрес или имя хоста, компьютера, к которому вы хотите подключиться, в поле порт — нужно указать порт, на котором запущен SSH сервер, по умолчанию используется порт 22:
Далее, нажмите кнопку «Open». После этого появится запрос на добавление ключа сервера в список доверенных ключей, нажмите «Да»:
Затем вам будет нужно ввести логин пользователя и пароль
Важно заметить, что скопировать логин или пароль у вас не получится, необходимо только вводить вручную:. Теперь авторизация прошла успешно, и вы можете выполнять нужные действия на сервере:
Теперь авторизация прошла успешно, и вы можете выполнять нужные действия на сервере:
3. Сохранение сессии PuTTY
Чтобы не вводить каждый раз ip и порт можно сохранить эти данные в виде сессии, для этого пропишите новое имя в поле «Saved Sessions», а затем нажмите кнопку «Save»:
Теперь вы сможете загрузить сохраненную сессию, нажав кнопку «Load».
После того как будет завершена настройка putty и все параметры будут выставлены правильно вы можете сохранить настройки и не вводить их несколько раз.
4. Имя пользователя по умолчанию
Вы можете не вводить имя пользователя каждый раз, для этого перейдите на влкадку «Connection», затем «Data» и в поле «Auto-login Username» пропишите имя пользователя, например, root:
Теперь подключение putty будет выполняться от имени этого пользователя.
5. Авторизация по ключу ssh в PuTTY
Чтобы не вводить каждый раз пароль можно настроить авторизацию по ключу. В Linux такая возможность используется очень широко потому что это удобно. Первым делом необходимо создать ключ. Для этого запустите утилиту PuTTYgen и установите переключатель в положение «SSH-2 RSA» нажмите «Generate»:
Обязательно ключ должен быть SSH-2 RSA, если в главном окне нет, выберите в меню «Key». Подвигайте мышкой, чтобы создать достаточное количество энтропии:
Ключ готов, затем, с помощью кнопок «Save Public Key» и «Save Private Key» сохраните оба ключа.
Далее, откройте PuTTY, перейдите на вкладку «Connection», затем «SSH», затем «Auth»:
Здесь необходимо нажать кнопку «Browse» и добавить недавно сохраненный приватный ключ:
Далее, возвращаемся на вкладку «Session», выбираем наше сохранение и нажимаем «Save» чтобы сохранить настройки. Осталось только отправить наш открытый ключ на сервер. Для этого авторизуйтесь на нем с помощью пароля и открытый ключ вставьте ключ в конец файла /root/.ssh/authorized_keys.
Ключ можно брать прямо из окна PuTTYgen «Public key for pasting» или из файла открытого ключа:
Все, теперь можно выходить и авторизоваться снова. На этот раз подключение по ssh putty будет выполняться с помощью нашего ключа. Не забывайте сохранять настройки сессии, чтобы не выбирать ключ каждый раз. Теперь вы знаете как пользоваться программой putty, рассмотрим еще передачу файлов.
5. Передача файлов через scp в PuTTY
Не все знают, но PuTTY позволяет передавать файлы через ssh также как это делает linux с помощью утилиты scp. Нажмите Win+R, затем пропишите cmd, чтобы запустить командную строку.
Синтаксис утилиты pcsp выглядит следующим образом:
pscp опции путь_файлу имя_пользователя@хост:/путь/к/файлу/на/удаленном/хосте
Например, мы можем отправить файл из текущей папки в папку пользователя /root/:
С помощью опции -P можно задать удаленный порт:
А опция load позволяет загрузить сохраенные настройки сессии PuTTY:
Теперь вы знаете как использовать putty для передачи файлов.
Работа с текстом
Парочка полезных команд для взаимодействия с любыми видами текстов на сервере через SSH.
cat — показывает текст из выбранного файла. В качестве аргумента передаем этой утилите текстовый документ, и cat выведет в консоль его содержимое. Синтаксис:
cat путь до файла, содержимое которого надо осмотреть
Чтобы взглянуть на содержимое файла timeweb.txt, который лежит на рабочем столе, напишем в терминал:
cat ~/Desktop/timeweb.txt
head — это «голова». Она работает по схожему с cat принципу. Отображает текст из файлов, где он имеется. Разница заключается в количестве отображаемого контента. Пользователь сам выбирает, сколько строчек текста вывести на экран, поставив аргумент -n. Команда head -n 4 ~/Documents/timeweb.txt покажет только первые четыре строки документа timeweb.txt из папки Documents.
tail — это «хвост». Работает, как head, но с противоположной стороны. Команда tail -n 8 ~/Documents/timeweb.txt покажет только первые восемь строк документа timeweb.txt из папки Documents.
touch — одна из множества команд для SSH, которую используют не по назначению. У нее весьма специфичная задача по изменению времени последнего открытия отдельных элементов файловой системы. Но ее быстро перепрофилировали чуть ли не в стандартный метод создания файлов. touch ~/Desktop/timeweb.html создаст HTML-документ с именем Timeweb на рабочем столе.
vi — используя с дополнительными аргументами, можно создавать новые текстовые файлы. Например vi /путь до директории, где нужно создать новый текстовый файл/. Или же редактировать уже существующие. Чтобы изменить содержимое какого-нибудь файла в домашней папке, надо ввести: vi /home/имя учетной записи/kakoy-to-tekstoviy-file.txt. Альтернативой vi может служить nano. Более современный и лояльный к новичкам редактор. К сожалению, может отсутствовать в системе по умолчанию и требовать установки.
wc путь до файла — показывает количество символов, количество строк и слов в выбранном текстовом документе.
grep — ищет конкретный кусочек текста в большом документе или распечатке из консоли. Чтобы дать понять, как он работает, покажу пример. Буду искать слово «немного» в файле timeweb.txt, лежащем у меня на рабочем столе. Сделаю это одной командой cat ~/Desktop/timeweb.txt | grep немного. Перед grep я использовал cat, чтобы вывести содержимое документа в консоль, а потом отфильтровать.
diff — сравнивает два файла и наглядно показывает строки, в которых обнаружились различия. Синтаксис: diff название первого файла название второго файла. Это может выглядеть так:
diff timeweb-1.html timeweb-2.html
Как правильно настроить программу Putty?
ШАГ 1: Запуск без установки. Как было указано ранее, после скачивания программы устанавливать её не нужно, просто запускаем файл PuTTY.exe и видим такое окно:
ШАГ 2: Поиск настроек
В большинстве случаев хостинг-провайдер высылает настройки для доступа к серверу по SSH-протоколу, но важно уточнить у своего хостера, предоставляет ли он услуги такого характера. Когда у вас есть настройки, переходим к заполнению нужных полей:
ШАГ 3: Ввод настроек и подключение. Host Name (ip-adress) – имя хоста или IP-адрес, которые присылаются в настройках от хостера.
Port – ставим “22”.
Saved Session – вводим любое имя для сессии и жмем «Save» («Open» пока еще рано жать).
Далее в левой колонке выбираем вкладку SSH и видим следующее:
Здесь ничего не трогаем, но в поле “Preferred SSH protocol version” выбираем “2 only” (на некоторых хостингах можно просто оставить 2). Чтобы подключиться к серверу жмем «Open».
После этого должен появиться черный экран с надписью «Login as». Вводим логин (при этом экран остается черным), нажимаем Enter. Если все было настроено правильно, то вы увидите перед собой командную строку сервера, в которую не нужно вводить команды.
Важные горячие клавиши:
имя команды —help – полная информацию о команде и её функциях;
mc – запуск Midnight Commander (файловый менеджер);
ls – показ файлов на сервере;
ls — la – показ всех файлов на сервере (даже скрытх) + размер + владельца + прав на файлы + дату изменения;
cd директория – переход в указанную директорию;
cd ../ – возврат на директорию вверх;
mv – переименование\перенос файла;
rm – удаление файла;
cp – копирование;
chmod – изменение прав на папку или файл;
cat имя файла – показ содержимого файла;
mkdir – создание папки.
Преимущества PuTTY
-
Гибкая настройка удаленного узла
-
Поддержка кроссплатформенности
-
Обеспечение надежности соединения
-
Возможность ведение лог-файлов
Недостатки PuTTY
-
Сложный англоязычный интерфейс. Для русскоязычного меню необходимо скачать русскоязычную версию PuTTY
-
В приложении отсутствует FAQ и документация о продукте
PUTTY — это одно из лучших софтов для безопасного подключения по SSH-протоколу. А бесплатная лицензия этого продукта делает его просто незаменимым инструментом для удаленной работы.
Работа с программой
Интерфейс
Пользоваться программой PuTTY удобно, т. к. она имеет понятный интерфейс. Чтобы ее настроить , нужно знать назначение основных ее вкладок.
- Session позволяет задать параметры соединения, чтобы подключиться к серверу (IP-адрес, протокол и порт), а также сохранить настройки для многократного использования.
- Terminal : режим активации или деактивации терминала.
- Window : установка кодировки и изменение интерфейса.
- Connection отвечает за выбор шифрования, аутентификацию без ввода пароля и т. д.
Соединение с удаленным сервером
Принцип подключения не зависит от операционной системы. Это могут быть разные версии Windows (7, 10) или популярные дистрибутивы на основе Linux — Ubuntu, CentOS, Debian.
Подключиться по SSH через PuTTY просто. Для этого нужно следовать приведенной ниже инструкции.
- Ввести IP-адрес или имя хоста, к которому необходимо подключиться.
- Указать порт (по умолчанию везде 22).
- Выбрать тип соединения SSH.
- Ввести название подключения и сохранить его, нажав кнопку «Save».
- Активировать соединение, нажав на «Open».
- Указать данные для авторизации (логин и пароль).
После этого работа с терминалом осуществляется, как на локальном компьютере. Чтобы узнать информацию о версии Ubuntu, нужно ввести команду:
Для удобства можно создать жесткую ссылку (ярлык) на программу для быстрого запуска.
Использование SSH-ключей
Чтобы постоянно не вводить данные авторизации для соединения с удаленным сервером, нужно установить ключ SSH -типа.
Для примера, продемонстрируем ниже, как подключиться через PuTTY , установленного в Windows 10, при помощи SSH-ключа к серверу на Ubuntu.
Шаг №1
Для начала, нужно выполнить ряд действий на компьютере с ОС Windows.
- Установить программу для генерации ключа « Putty Key Generator » и запустить ее.
- Задать параметр « RSA » и активировать процесс кнопкой « Generate ». Нужно постоянно вводить указателем мыши в зоне окна выполнения операции для успешной генерации.
- Сохранить private key , для чего скопировать текст из консоли в документ . Предварительно нужно указать тип файла «.ppk ».
- Затем сохраняем public key. Для этого необходимо скопировать и вставить текст из буфера обмена в любой пустой текстовый файл.
- Свернуть программу.
Шаг №2
Далее необходимо перенести SSH-ключ на сервер Ubuntu, выполнив перечисленные ниже действия.
- Запустить программу PuTTY.
- Подключиться к серверу, используя его параметры для доступа (хост, порт и SSH-протокол).
- Командой mkdir .ssh создаем папку «.ssh». Затем командой ll проверяем наличие папки.
- Прописываем права доступа для папки .ssh только для владельца, командой « сhmod 700 .ssh/
- При помощи команды « cd .ssh » переходим в системную папку « ./ssh ».
- Создаем файл « authorized_keys », используя редактор nano, командой:
Прописываем права доступа для файла « authorized_keys », только для владельца, командой:
Редактируем файл с помощью команды:
Добавляем ваш public key и заканчиваем редактирование файла командой EOF
Шаг №3
Возвращаемся к программе PuTTY на Windows 10.
- Переходим в программу.
- Добавляем данные для подключения.
- Переходим во вкладку «Connection → SSH → Auth». Выбираем для аутентификации сохраненный файл «.ppk».
- Активируем соединение при помощи нажатия « Open ».
Работа с файлами
Программа позволяет делать операции с файлами. Чтобы закачать файл на сервер , находящийся под управлением Linux Ubuntu (с компьютера на ОС Windows), нужно действовать по приведенной ниже инструкции.
- Сохранить тестовый файл « mydoc.txt » на диске C: вместе с исполняемым файлом для безопасного копирования — pscp.exe.
- Открыть командную строку Windows: « Win+R → cmd → Enter ».
- Зайти в папку с программой pscp.exe, для чего ввести команду : « cd /d c:Puttypscp.exe » * , где « c:Putty » — путь к файлу pscp.exe. * Путь к файлу «c:Puttypscp.exe» приведен в качестве примера.
- Далее можно приступать непосредственно к работе с файлом. Например, п ередать файл « mydoc.txt » на сервер « 192.241.7.16 » * со стандартным портом и пользователем Ubuntu74 в папку « root » можно командой: * IP-адрес «192.241.7.16» приведен только в качестве примера.
Если для соединения используется нестандартный порт (например, 25), то команда примет вид:
Ввести пароль для Ubuntu74 .
Скачать файл через PuTTY с сервера « 192.241.7.16 » в текущую папку можно с помощью команды:
Чтобы объединить файлы , нужно их загрузить на удаленную машину, а затем выполнить команду « sudo cat mydoc1.txt mydoc2.txt > mydoc.txt ».
Как подключиться по SSH
Нам понадобится IP-адрес удаленного компьютера или сервера, к которому мы хотим подключиться. Последующие действия мы будем рассматривать на примере VDS от Timeweb – все шаги аналогичны любому хостингу, поэтому у вас не должно возникнуть никаких вопросов. Если же подключаетесь не к серверу, а к компьютеру, то можете сразу переходить ко второму пункту.
Подключаемся по SSH:
- Первым делом узнаем, какой используется адрес у VDS – для этого переходим в личный кабинет хостинга и заходим в список подключенных серверов. На Timeweb адрес можно узнать в специально отведенном для этого столбце.
- Переходим к PuTTY – запускаем программу и открываем раздел «Session». Там вводим адрес удаленного компьютера, указываем порт 22 и в нижней части приложения кликаем по кнопке «Open».
- При успешном вводе данных перед нами отобразится консольное окно, в котором нужно ввести логин и пароль для подключения к серверу. Как правило, логин – root, а пароль отправляется хостингом в почтовом письме после установки ОС.
- Если логин и пароль были введены корректно, то мы увидим окно приветствия.
Таким образом мы подключились к ПК на операционной системе Linux. Здесь мы можем вводить команды и удаленно взаимодействовать с компьютером.