[root@putty ~/docs] #

PuTTY: Часто Задаваемые Вопросы

Данный материал основан на переводе оригинального PuTTY FAQ, и подойдет как к английской, так и к русской версии PuTTY. Большинство терминов и описаний пользовательского интерфейса оставлены на языке оригинала.

1. Введение

1.1. Что такое PuTTY?

PuTTY — это клиентская программа, предназначенная для работы с сетевыми протоколами, такими как SSH, Telnet, Rlogin и SUPDUP.

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

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

2. Функции, поддерживаемые в PuTTY

Если вы хотите узнать, поддерживает ли PuTTY ту или иную функцию, вам следует поискать ее на официальном сайте PuTTY. В частности:

2.1. Поддерживает ли PuTTY SSH-2?

Да. Поддержка SSH-2 доступна в PuTTY начиная с версии 0.50 от 2000 года.

Аутентификация с открытым ключом (как RSA, так и DSA) в SSH-2 появилась в версии 0.52 в 2002 году.

2.2. Поддерживает ли PuTTY чтение файлов закрытых ключей OpenSSH или ssh.com SSH-2?

PuTTY не поддерживала это изначально (почему нет, см. запись в списке пожеланий), но начиная с версии 0.53, PuTTYgen может конвертировать файлы закрытых ключей OpenSSH и ssh.com в формат PuTTY.

2.3. Поддерживает ли PuTTY SSH-1?

Да. Поддержка SSH-1 была доступна всегда.

Однако протокол SSH-1 имеет множество недостатков и больше не считается безопасным, по возможности следует использовать протокол SSH-2.

Начиная с версии 0.68, PuTTY больше не будет автоматически переключаться на SSH-1, если сервер не поддерживает SSH-2. Вы должны явно запросить соединение по SSH-1.

2.4. Поддерживает ли PuTTY локальное эхо?

Да. Полная поддержка локального эха реализована в версии 0.52.

В версии 0.51 и более ранних версиях локальное эхо нельзя было отделить от локального редактирования строки (когда вы вводите строку текста локально, и она не отправляется на сервер до тех пор, пока вы не нажмете «Enter», так что у вас есть возможность отредактировать ее и исправить ошибки до того, как сервер ее увидит). Начиная с версии 0.52, локальное эхо и локальное редактирование строк — это отдельные параметры, и по умолчанию PuTTY будет пытаться автоматически определить, включать их или нет, основываясь на выбранном протоколе и подсказках от сервера. Если вас не устраивает выбор PuTTY по умолчанию, вы можете принудительно включить или отключить каждую опцию по своему усмотрению. Управление находится на панели «Terminal», в разделе «Line discipline options».

2.5. Поддерживает ли PuTTY сохранение настроек, чтобы не менять их каждый раз?

Да, все настройки PuTTY можно сохранить в именованных профилях сеансов. Вы также можете изменить настройки по умолчанию, используемые для всех новых сеансов. См. раздел 4.1.2 документации, как это сделать.

2.6. Поддерживает ли PuTTY сохранение настроек в файле на диске?

В настоящее время нет, хотя в разделе 4.33 документации приводится способ как достичь того же эффекта.

2.7. Поддерживает ли PuTTY полноэкранный режим, как в DOS?

Да, это было добавлено в версии 0.52 в 2002 году.

2.8. Позволяет ли PuTTY сохранить мой пароль, чтобы не приходилось вводить его каждый раз?

Нет, не позволяет.

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

Кроме того, PuTTY даже не может автоматически отправлять пароли в сеанс Telnet, поскольку Telnet не дает клиентскому ПО никаких указаний на то, какая часть процесса входа в систему является запросом пароля. PuTTY придется догадываться, ища в данных сеанса слова типа «password», и если сценарий входа написан не на английском языке, то это не сработает.

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

2.9. Есть ли возможность отключить надоедливые запросы ключей хоста?

Нет. И не будет. Даже если вы реализуете это сами и отправите нам патч, мы его не примем.

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

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

Если у вас возникла конкретная проблема с проверкой ключа хоста, например, если вы хотите автоматизировать пакетное задание с использованием PSCP или Plink, а интерактивный запрос ключа хоста тормозит пакетный процесс — то наилучшим способом решения этой проблемы будет заранее добавить правильный ключ хоста в реестр, а если реестр недоступен, то использовать параметр командной строки -hostkey. Таким образом вы сохраните важную функцию проверки ключа хоста: правильный ключ будет принят, а неправильный — нет. Добавление возможности полностью отключить проверку ключей хоста — неверное решение, и мы не будем этого делать.

Если у вас имеются ключи хоста в обычном формате known_hosts, может воспользоваться скриптом kh2reg.py для преобразования их в .reg файл, который можно установить заранее двойным кликом мыши или используя REGEDIT.

2.10. Будете ли вы писать собственный SSH-сервер для включения в состав инструментов PuTTY?

Не тот, который вы хотели бы использовать.

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

SSH-сервер специального назначения (называемый Uppity) теперь можно построить из исходного кода PuTTY. Он служит, в основном, как средство для проведения тестирования, и не пригоден для использования в качестве сервера общего назначения.

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

2.11. Могут ли PSCP или PSFTP передавать файлы в режиме ASCII?

К сожалению, нет.

Это было ограничением протоколов передачи файлов в их первоначальном виде: протоколы SCP и SFTP не предполагали передачу файлов в каком-либо другом режиме, кроме двоичного (это по-прежнему справедливо для SCP).

Текущая draft-спецификация протокола SFTP предлагается реализовать передачу данных в формате ASCII. В какой-то момент PSCP/PSFTP может реализовать это предложение.

3. Портирование на другие операционные системы

Конечная цель состоит в том, чтобы PuTTY стал многоплатформенной программой, способной работать как минимум на Windows, Mac OS и Unix.

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

3.1. Какие порты PuTTY существуют?

В настоящее время релизные версии инструментов PuTTY работают только в системах Windows и Unix.

С версии 0.68, поставляемые исполняемые файлы PuTTY работают в версиях Windows, начиная с XP, и до Windows 11 включительно, и мы не знаем причин, по которым PuTTY не должен продолжать работать в будущих версиях Windows. Мы предоставляем 32- и 64-битные исполняемые файлы Windows для процессоров семейства x86 (см. вопрос 6.10 для обсуждения связанных с этим проблем совместимости). Для 32-разрядных исполняемых файлов требуется процессор Pentium 4 или более новый. Мы также предоставляем исполняемые файлы для Windows на процессорах Arm.

(Ранее мы также предоставляли исполняемые файлы для Windows на процессорах Alpha, но прекратили после версии 0.58 из-за отсутствия интереса.)

В коде разработки существует частичный порт на Mac OS (см. вопрос 3.6).

На данный момент PuTTY не работает в Windows CE (см. вопрос 3.4).

В настоящее время у нас нет портов релизного качества для каких-либо других систем. Если кто-то сказал вам, что у нас есть порт для Android, порт для iOS или любой другой порт PuTTY, он ошибся. У нас их нет.

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

3.2. Есть ли порт на Unix?

Имеются Unix-порты большинства традиционных инструментов PuTTY, а также одно совершенно новое приложение.

Если вы посмотрите на исходный код, вы найдете подкаталог unix. Для его сборки вам потребуется cmake, см. файл README в дистрибутиве исходников. В результате сборки вы получите:

Если у вас нет GTK, вы все равно сможете собрать инструменты командной строки.

3.3. В чем смысл порта Unix? В Unix есть OpenSSH.

Множество мелких аспектов — pterm найдут полезным те, кто предпочитает эмуляцию терминала PuTTY эмуляции терминала xterm. Plink, очевидно, нашел свою нишу среди людей, которые считают, что сложность OpenSSL затрудняет установку OpenSSH (и которые не возражают против отсутствия у Plink такого количества функций). Некоторые пользователи хотят сгенерировать большое количество SSH-ключей в Unix, а затем скопировать их всех в PuTTY, и Unix PuTTYgen позволяет им автоматизировать процесс такой конвертации.

Кроме того, портирование PuTTY на Unix было полезным для других будущих портов, а также позволило нам использовать отличный инструмент Valgrind для отладки под Linux, что уже повысило стабильность работы PuTTY на всех платформах.

Однако, если вы являетесь пользователем Unix и не видите причин для перехода с OpenSSH на PuTTY и Plink, то, скорее всего, вы правы. Мы не ожидаем, что наш Unix-порт подойдет для каждого.

3.4. Будет ли порт на Windows CE или PocketPC?

Когда-то мы работали над таким портом, но он достиг лишь ранней стадии, и не был сильно полезен. Сейчас работа над ним уже не ведется.

3.5. Есть ли порт на Windows 3.1?

PuTTY — это изначально 32-битное приложение, поэтому оно не будет работать в Windows 3.1 как родная 16-битная программа, и портировать его туда было бы очень трудно из-за ужасных механизмов распределения памяти в Windows 3.1.

Однако теоретически возможно скомпилировать существующий исходный код PuTTY таким образом, чтобы он работал под Win32s (расширение Windows 3.1, позволяющее запускать 32-битные программы). Для этого вам понадобится соответствующий компилятор языка Си, так как современные версии Visual C перестали быть обратно совместимыми с Win32. Кроме того, в последний раз, когда мы пытались это сделать, это работало не очень хорошо.

3.6. Будет ли порт на Mac?

Мы надеемся на это!

Примерно в 2005 году мы попытались создать нативное приложение Cocoa, но по какой-то причине перерисовка окна оказалась очень медленной, и мы так и не разобрались с данной проблемой.

В 2015 году, после портирования фроненда GTK для работы с GTK 3, мы предприняли еще одну попытку, основанную на внесении небольших изменений в код GTK и сборке его на основе версии GTK 3 для OS X Quartz. Проблем с перерисовкой больше не возникает, так что мы уже продвинулись дальше, чем в предыдущей попытке. Однако разработка все равно остается незавершенной.

Если у кого-то из специалистов по программированию под OS X и/или GTK есть желание завершить эту версию, мы призываем их помочь в решении оставшихся проблем! См. список TODO в unix/main-gtk-application.c в исходном коде.

3.7. Будет ли порт на EPOC?

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

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

3.8. Будет ли порт на iPhone?

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

Однако существует сторонний SSH-клиент для iPhone и iPod Touch под названием pTerm, который, судя по всему, основан на PuTTY. (Это не имеет никакого отношения к нашему pterm, который является автономным эмулятором терминала для систем Unix. См. вопрос A.3.2.)

4. Встраивание PuTTY в другие программы

4.1. Доступен ли код SSH или Telnet в виде DLL?

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

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

См. также запись в списке Wishlist.

4.2. Доступен ли код SSH или Telnet в качестве компонента Visual Basic?

Нет, не доступен. Никто из команды разработчиков PuTTY не использует Visual Basic, и ни у кого из нас нет особой необходимости устанавливать SSH-соединения из приложений на Visual Basic. Кроме того, сначала потребуется выполнить всю предварительную работу по превращению PuTTY в DLL, и более того, мы даже не знаем, как писать компоненты на VB.

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

4.3. Как использовать PuTTY для создания SSH-соединения из другой программы?

Вероятно, лучше всего использовать Plink, инструмент командной строки для установки соединений. Если вы можете запустить Plink как второй процесс Windows и организовать все так, чтобы ваш основной процесс мог отправлять данные процессу Plink и получать от него данные по межпроцессорным каналам (pipes), тогда вы сможете устанавливать SSH-соединения из своей программы.

Именно так, например, поступает CVS для Windows.

5. Детали работы PuTTY

5.1. Какой тип терминала использует PuTTY?

Для большинства целей PuTTY можно рассматривать как терминал xterm.

PuTTY также поддерживает некоторые управляющие последовательности, не поддерживаемые настоящим xterm: в частности, последовательности консоли Linux, которые перенастраивают цветовую палитру, и последовательности управления строкой заголовка, используемые в DECterm (которые отличаются от последовательности xterm, PuTTY поддерживает обе).

По умолчанию PuTTY объявляет серверу тип своего терминала как xterm. Если у вас возникли проблемы, вы можете перенастроить его на другой тип, например, в некоторых случаях может помочь vt220.

5.2. Где PuTTY хранит свои данные?

В Windows PuTTY хранит большую часть своих данных (сохраненные сеансы, ключи хостов SSH) в реестре. Точное местоположение:

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY

сохраненные сеансы хранятся внутри этого дерева в разделе Sessions, а ключи хостов, в SshHostKeys.

Также PuTTY требуется наличия файла семени случайных чисел (seed-файла), для повышения непредсказуемости случайных данных, необходимых для SSH-криптографии. По умолчанию этот файл сохраняется как PUTTY.RND в каталоге Application Data, или, если это не удается, в одном из нескольких резервных мест.

Если вы хотите изменить расположение seed-файла, вы можете указать путь к нему в реестре по адресу:

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\RandSeedFile

Вы можете попросить PuTTY удалить все эти данные (см. вопрос 8.2).

В Unix, по умолчанию PuTTY хранит все эти данные в каталоге ~/.putty.

5.3. Почему рядом с приглашениями для входа в систему появляются маленькие значки PuTTY?

Начиная с PuTTY 0.71, некоторые строки текста в окне терминала помечаются маленькой копией значка PuTTY.

Это сделано для обеспечения доверия. Если рядом со строкой текста появляется значок PuTTY, это означает, что данная строка текста была создана самим PuTTY, а не сгенерирована сервером и отправлена в PuTTY.

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

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

5.4. Почему Plink начал выдавать сообщение «Press Return to begin session»?

Начиная с PuTTY 0.71, если вы используете Plink для интерактивного сеанса SSH, то после завершения этапа входа в систему появится заключительное интерактивное приглашение с надписью «Access granted. Press Return to begin session».

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

В Plink мы не можем использовать защиту, описанную в вопросе 5.3: Plink работает в терминале, поэтому все, что он может записать в терминал, сервер может записать таким же образом. И мы не можем просто напечатать разделительную строку без паузы, потому что тогда сервер может просто переместить курсор обратно на эту строку и перезаписать ее (вероятно, с кратковременным мерцанием, но вы можете легко это пропустить). Единственная надежная защита, которую удалось придумать, предполагает эту паузу.

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

6. Практические вопросы

6.1. Какой логин/пароль мне следует использовать?

Этот вопрос следует задавать не нам.

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

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

6.2. Какие команды можно вводить в окно терминала PuTTY?

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

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

(Думайте о PuTTY как о телефоне. Если вы звоните кому-то и не знаете, на каком языке говорить, телефонная компания не обязана выяснять это за вас. Мы лишь предоставляем средство связи, но сделать так, чтобы вас поняли — это не наша проблема.)

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

6.3. Как сделать, чтобы PuTTY запускалась на весь экран?

Создайте в Windows ярлык для запуска PuTTY и установите свойство окна в значение «Развернутое на весь экран».

6.4. Как создать ярлык для запуска определенного сеанса?

Чтобы сразу запустить сеанс, сохраненный под именем mysession, создайте ярлык со следующим параметром командной строки:

\path\name\to\putty.exe -load "mysession"

6.5. Как запустить сеанс SSH прямо из командной строки?

Используйте командную строку putty -ssh host.name. Также можно создать сохраненный сеанс с указанием протокола SSH, и запускать его, как показано в вопросе 6.4.

6.6. Как копировать и вставлять текст между PuTTY и другими приложениями Windows?

Копирование и вставка работают аналогично системе «X Window».

Используйте левую кнопку мыши для выделения текста. При выделении, текст автоматически копируется в буфер обмена, нет необходимости нажимать Ctrl-C, Ctrl-Ins или что-то еще. (Фактическое нажатие Ctrl-C отправит символ ^C на другой конец вашего соединения, что может привести к неприятным последствиям.) Единственное, что нужно сделать, чтобы скопировать текст в буфер обмена, это его выделить.

Для вставки содержимого буфера обмена в окно PuTTY используется правая кнопка мыши. Если у вас трехкнопочная мышь и вы привыкли к X-приложениям, вы можете настроить вставку с помощью средней кнопки, но это не вариант по умолчанию, поскольку у большинства пользователей Windows вообще нет средней кнопки.

Также текст можно вставить нажатием Shift-Ins.

6.7. Как использовать все функции PuTTY (открытые ключи, проксирование, выбор шифрования и т. д.) в PSCP, PSFTP и Plink?

Большинство основных функций (например, открытые ключи, переадресация портов) доступно через параметры командной строки. См. раздел 3.11.3 документации.

Пока не все функции доступны из командной строки, но мы хотели бы это исправить. Пока же вы можете использовать большинство функций, если создадите сохраненный сеанс в PuTTY, а затем используете имя этого сеанса в командной строке вместо имени хоста. Это работает для PSCP, PSFTP и Plink (но не ожидайте переадресации портов в приложениях для передачи файлов!).

6.8. Как использовать PSCP.EXE? Когда я дважды кликаю мышкой, появляется окно командной строки, которое затем мгновенно закрывается.

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

Чтобы использовать PSCP, запустите ее из окна командной строки. Более подробную информацию см. в главе 5 документации.

6.9. Как использовать PSCP для копирования файла, имя которого содержит пробелы?

Если PSCP использует новый протокол SFTP (который обычно используется на большинстве современных серверов), то здесь все просто: все имена файлов, содержащие пробелы, указываются с использованием двойных кавычек очевидным образом:

pscp "local file" user@host:
pscp user@host:"remote file" .

Однако, если PSCP по какой-то причине использует старый протокол SCP, ситуация становится более запутанной. Если вы указываете файл на локальной стороне, вы просто используете один набор кавычек, как обычно:

pscp "local filename with spaces" user@host:
pscp user@host:myfile "local filename with spaces"

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

pscp user@host:"\"remote filename with spaces\"" local_filename
pscp local_filename user@host:"\"remote filename with spaces\""

Хуже того, при копировании с удаленного на локальный компьютер вам придется явно указывать имя локального файла, иначе PSCP выдаст сообщение о том, что они не совпадают (если вы не указали опцию -unsafe). Следующая команда выдаст сообщение об ошибке:

c:\>pscp user@host:"\"oo er\"" .
warning: remote host tried to write to a file called 'oo er'
when we requested a file called '"oo er"'.

Вместо этого необходимо указать полное имя локального файла:

c:\>pscp user@host:"\"oo er\"" "oo er"

6.10. Следует ли запускать 32-разрядную или 64-разрядную версию?

Если вы не уверены, 32-разрядная версия обычно является безопасным выбором. Она будет отлично работать на всех процессорах и во всех версиях Windows, которые поддерживает PuTTY. Для нормальной работы не обязательно запускать 64-разрядное приложение, и наличие 32-разрядной версии PuTTY на 64-разрядной системе вряд ли вызовет проблемы.

64-разрядная версия (впервые выпущена в версии 0.68) будет работать только при наличии 64-разрядного процессора и 64-разрядной версии Windows (оба этих условия, вероятно, будут справедливы для любого современного ПК с Windows). Она будет работать немного быстрее (в частности, быстрее будет работать криптография, особенно при установке соединения), но при этом будет потреблять немного больше памяти.

Если вам необходимо использовать внешнюю DLL-библиотеку для аутентификации GSSAPI, эта библиотека может быть доступна только в 32-битной или только 64-битной форме, и это и будет определять версию PuTTY, которую вам следует использовать (см. раздел 4.23.2 в документации).

7. Устранение неполадок

7.1. Почему в PSCP появляется сообщение «Fatal: Protocol error: Expected control record»?

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

Почти всегда это происходит потому, что сценарий входа в систему на сервере генерирует выходные данные. Такое поведение невозможно обработать в PSCP (или любом другом SCP-клиенте). Никогда не используйте файлы запуска (.bashrc, .cshrc,и т.д.), которые генерируют выходные данные в неинтерактивных сеансах.

На самом деле это не проблема PuTTY. Если PSCP завершается таким образом, то и все остальные SCP-клиенты, скорее всего, завершатся таким же образом. Проблема кроется на стороне сервера.

7.2. Я выбрал цвет на панели «Colours», но цвет в моем терминале не изменился.

В ходе сеанса, PuTTY может потенциально использовать все цвета, перечисленные на панели «Colours». Речь не идет о том, чтобы использовать только один из цветов и выбрать какой именно, PuTTY будет использовать их все. Назначение панели «Colours» состоит в том, чтобы позволить вам настроить внешний вид всех цветов. Например, чтобы изменить цвет курсора, вы должны выбрать «Cursor Colour», нажать «Modify» и выбрать новый цвет в появившемся диалоговом окне. Точно так же, если вы хотите, чтобы ваш сеанс отображался зеленым цветом, вам следует выбрать «Default Foreground» и нажать «Modify». То есть, изменение цвета «ANSI Green» не сделает ваш сеанс зеленым, оно позволит вам настроить оттенок зеленого, используемый только тогда, когда сервер даст PuTTY указание отображать зеленый текст.

7.3. После попытки установить SSH-2 соединение PuTTY выдает сообщение «Out of memory» и завершает работу.

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

PuTTY жалуется на «out of memory», поскольку первые зашифрованные данные, которые программа ожидает увидеть — это длина SSH-сообщения. Обычно это менее 100 байт. Но если расшифровка завершилась неудачно, то PuTTY увидит абсолютно случайную длину, близкую к двум гигабайтам, и попытается выделить память для хранения этого несуществующего сообщения. Это немедленно приведет к панике, так как программа подумает, что ей не хватает памяти.

Если вы столкнулись с данной проблемой, возможно, это ошибка в PuTTY, и вам стоит сообщить об этом (хотя это также может быть ошибкой вашего SSH-сервера). Однако не обязательно, что у вас действительно закончилась память.

7.4. При попытке передачи файла, PSCP или PSFTP выдают сообщение «Out of memory» и завершают работу.

Почти всегда это связано с тем, что сценарии входа в систему на сервере генерируют выходные данные. PSCP или PSFTP получат эти выходные данные, когда ожидали увидеть начало протокола передачи файлов, и пытаются интерпретировать полученные данные как протокол передачи файлов. Это обычно приводит к ошибке «out of memory» по тем же причинам, что и в вопросе 7.3.

Это проблема настройки вашей учетной записи на сервере, а не ошибка PSCP/PSFTP. Ваши сценарии входа никогда не должны генерировать выходные данные во время неинтерактивных сеансов. Безопасная передача файлов — не единственная форма удаленного доступа, которая выйдет из строя, если они это сделают.

В Unix простым решением будет убедиться, чтобы все части вашего сценария входа в систему, которые могут генерировать выходные данные, находились в .profile (если вы используете sh-производные) или .login (если вы используете C shell). Размещение их в более общих файлах, таких как .bashrc или .cshrc, может привести к проблемам.

7.5. PSFTP передает файлы гораздо медленнее, чем PSCP.

Пропускная способность PSFTP 0.54 должна быть намного выше, чем у версии 0.53b и более ранних версий. Мы добавили в бэкенд SFTP код, позволяющий ставить в очередь несколько блоков данных, а не ждать подтверждения для каждого. (Бэкэнд SCP не страдал от этой проблемы, поскольку SCP — гораздо более простой протокол).

7.6. При запуске полноцветного приложения, я вижу черные области там, где должен быть цвет, и наоборот.

Вам почти наверняка необходимо изменить настройку «Use background colour to erase screen» на панели «Terminal». Если на экране слишком много черного пространства (более распространенная ситуация), то ее следует включить, а если слишком много цвета, то отключить. (См. раздел 4.3.5 документации.)

В ранних версиях PuTTY эта функция была отключена по умолчанию, и изменения вступали в силу только после перезагрузки терминала (см. вопрос 7.7). Начиная с версии 0.54, эта функция включена по умолчанию, а изменения вступают в силу немедленно.

7.7. Когда я меняю некоторые настройки терминала, ничего не происходит.

Некоторые параметры терминала (в частности, автоматический перенос, и стирание цвета фона экрана) фактически представляют собой настройки по умолчанию, а не текущие активные настройки. Сервер может отправлять последовательности, изменяющие эти параметры в середине сеанса, но при сбросе терминала (действием сервера, или выбором пункта «Reset Terminal» в системном меню) значения по умолчанию будут восстановлены.

В версии 0.53b (и более ранних), если вы измените один из этих параметров в середине сеанса, вы обнаружите, что изменение не вступит в силу немедленно. Оно вступит в силу только после перезагрузки терминала.

В версии 0.54 поведение изменилось — изменения этих настроек теперь вступают в силу немедленно.

7.8. Мои сеансы PuTTY неожиданно закрываются после длительного простоя.

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

Вы можете попытаться это побороть, указав PuTTY посылать keepalives: пакеты данных, которые не оказывают влияния на фактический сеанс, но которые убеждают маршрутизатор или брандмауэр, что сетевое соединение все еще активно и о нем стоит помнить.

К сожалению, keepalives не решают всех проблем: хотя они и повышают устойчивость к такого рода маршрутизаторам, они также могут привести и к потере устойчивости при сбоях в сети. См. раздел 4.14.1 в документации для более подробного обсуждения этого вопроса.

7.9. Сетевые соединения PuTTY завершаются слишком быстро при временной потере сетевой связи.

Это проблема Windows, а не PuTTY. Значение таймаута не может быть установлено для каждого приложения или сеанса. Для глобального увеличения TCP-таймаута необходимо повозиться с реестром.

В Windows 95, 98 или ME необходимо создать или изменить ключ:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\MaxDataRetries

он должен иметь тип DWORD в Win95 или String в Win98/ME. (Дополнительную информацию см. в статье 158474 базы знаний MS Knowledge Base.)

В Windows NT, 2000 или XP необходимо создать или изменить ключ:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpMaxDataRetransmissions

и он должен иметь тип DWORD. (Дополнительную информацию см. в статьях 120642 и 314053 MS Knowledge Base.)

Установите значение ключа, например, в 10. Это заставит Windows дольше поддерживать соединения.

7.10. Когда я просматриваю двоичный файл с помощью команды cat, в командной строке появляется сообщение «PuTTYPuTTYPuTTY».

Не делайте этого.

Такое поведение задумано специально: когда PuTTY получает символ Control-E (^E) от удаленного сервера, он интерпретирует этот символ как запрос идентификатора, и поэтому отправляет строку PuTTY, как если бы эта строка была введена с клавиатуры. Обычно Control-E отправляют только программы, готовые обработать ответ, но запись двоичного файла в терминал, скорее всего, приведет к отправке множества символов Control-E и вызовет такое поведение.

Чтобы смягчить последствия, вы можете настроить строку ответа на ^E, изменив ее на пустую (см. раздел 4.3.7 документации). Но вывод двоичных файлов на ваш терминал может вызвать и другие неприятные последствия, так что это лишь ограниченная мера.

7.11. Когда я просматриваю двоичный файл с помощью команды cat, заголовок окна меняется на бессмысленную строку.

Не делайте этого.

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

7.12. Моя клавиатура перестает работать, когда PuTTY просит ввести пароль.

Нет, не перестает. Просто PuTTY не отображает вводимый вами пароль, чтобы никто не смог его подсмотреть.

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

7.13. Одна или несколько функциональных клавиш не выполняют ожидаемых действий в приложении на сервере.

Если вы уже перепробовали все соответствующие параметры в настройка PuTTY на панели «Keyboard», вам, возможно, придется написать разработчикам PuTTY и задать этот вопрос.

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

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

Самый простой способ это выяснить — найти другое терминальное окружение, в котором эта функциональная клавиша действительно работает, а затем выяснить, какую последовательность отправляет эта клавиша в данном окружении. Один из достаточно простых способов сделать это в системе Unix — ввести команду cat, а затем нажать функциональную клавишу. Скорее всего, на выходе будет получен результат вида ^[[11~. Вы также можете сделать это в PuTTY, чтобы узнать, какая последовательность отправляется нужной функциональной клавишей в PuTTY. Затем вы можете написать разработчикам PuTTY и сказать нам: «Я хотел, чтобы клавиша F1 посылала ^[[11~, но вместо этого она посылает ^[OP, можно ли это исправить?», или что-то подобное.

Вам стоит ознакомиться со страницей обратной связи на официальном сайте PuTTY (также представленную в приложении B руководства) и следовать содержащимся там рекомендациям.

7.14. Почему я вижу сообщение «Couldn't load private key from ...»? Почему PuTTYgen может загрузить мой ключ, а PuTTY — нет?

Скорее всего, вы сгенерировали ключ SSH протокола версии 2, но пытаетесь использовать его в соединении SSH-1. Ключи SSH-1 и SSH-2 имеют разные форматы.

Чтобы подключиться по SSH-2 к серверу, поддерживающему обе версии, необходимо изменить конфигурацию по умолчанию (см. вопрос 2.1).

7.15. Когда я подключаюсь к системе Red Hat Linux 8.0, некоторые символы отображаются неправильно.

Часто встречается жалоба на то, что дефисы на страницах man отображаются как a-acute.

В выпуске 8.0, Red Hat, похоже, сделала UTF-8 набором символов по умолчанию. И похоже, что эмуляторы терминалов, такие как PuTTY, никак не могут об этом узнать (насколько нам известно, соответствующая escape-последовательность для переключения в режим UTF-8, не отправляется).

Исправление заключается в настройке сеансов с системами RH8 на использование трансляции UTF-8 — см. раздел 4.10.1 в документации. (Обратите внимание, что если вы используете «Change Settings» посреди сеанса, изменения могут произойти не сразу — см. вопрос 7.7.)

Если вы действительно хотите изменить набор символов, используемый сервером, наиболее правильным способом будет редактирование файла /etc/sysconfig/i18n, однако это необязательно.

7.16. После обновления до PuTTY 0.54, перестала работать обратная прокрутка при запуске screen.

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

  1. они заполняли бы обратную прокрутку большим количеством бесполезного беспорядочного текста,
  2. у них есть свои собственные методы, позволяющие пользователю прокрутить назад до интересующего его фрагмента.
Мы пришли к выводу, что такая политика является правильной практически во всех ситуациях.

К сожалению, screen является исключением: он использует альтернативный экран, но обычно полезно, чтобы обратная прокрутка PuTTY продолжала в нем работать. Самое простое решение — зайти в настройки «Features» и поставить галочку «Disable switching to alternate terminal screen» (см. раздел 4.6.4 руководства для более подробной информации). В качестве альтернативы можно указать самому screen не использовать альтернативный экран: в screen FAQ предлагается добавить строку termcapinfo xterm ti@:te@ в файл .screenrc.

Причина, по которой это стало проблемой только в версии 0.54, заключается в том, что screen использует необычную управляющую последовательность для переключения на альтернативный экран, а предыдущие версии PuTTY не поддерживали эту последовательность.

7.17. После обновления Windows XP до Service Pack 2, я не могу использовать адреса типа 127.0.0.2.

Некоторые пользователи, которые просили PuTTY прослушивать адреса localhost отличные от 127.0.0.1 для перенаправления таких служб как SMB и Windows Terminal Services, обнаружили, что это больше не работает после обновления до WinXP SP2.

По всей видимости, это проблема SP2, которая описана Microsoft в статье 884020 базы знаний MS. В статье есть ссылка на исправление, которое можно скачать.

(Тем не менее, нам также сообщили, что SP2 также устраняет ошибку, из-за которой для перенаправления Terminal Services требовалось использовать адреса, отличные от 127.0.0.1)

7.18. Команды PSFTP, кажется, теряет разделитель каталогов (слэш).

Некоторые пользователи сообщали о следующем некорректном поведении PSFTP:

psftp> pwd
Remote directory is /dir1/dir2
psftp> get filename.ext
/dir1/dir2filename.ext: no such file or directory

Это не ошибка PSFTP.

В некоторых версиях портативного OpenSSH присутствует известная ошибка (ошибка 697), вызывающая подобные симптомы. Она появилась примерно в версии 3.7.x, и проявляется только на некоторых платформах (нам сообщали об AIX).

К этой ошибке прилагается патч, и она исправлена в последних версиях портативного OpenSSH (примерно с версии 3.8).

7.19. Хотите услышать об ошибке «Software caused connection abort»?

В документации к PuTTY 0.53 и 0.53b мы упоминали, что хотели бы узнать о любых случаях возникновения этой ошибки. Однако с момента выхода PuTTY 0.54 мы убедились, что эта ошибка не указывает на то, что PuTTY делает что-то не так, и нам больше не нужно знать о дальнейших случаях ее появления. См. раздел 10.16 нашей текущей документации по этой ошибке.

7.20. Мой сеанс SSH-2 время от времени блокируется на несколько секунд.

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

Эти задержки неудобны, но они нужны для вашей защиты. Если они действительно вызывают у вас проблемы, вы можете отключить повторный обмен ключами в настройках «Kex» (см. раздел 4.18 документации), но имейте в виду, что ради этого вы пожертвуете безопасностью. (Возврат к SSH-1 также устранит задержки, но при этом потеряется гораздо больше безопасности. Мы не рекомендуем этого делать.)

7.21. PuTTY не запускается. Windows утверждает, что «Конфигурация приложения неверна».

Это вызвано ошибкой в некоторых версиях Windows XP, которая возникает при использовании PuTTY 0.58. Эта ошибка была исправлена в версии 0.59. Более подробная информация содержится в записи xp-wont-run списка пожеланий PuTTY.

7.22. Когда я помещаю 32-разрядную PuTTY в C:\WINDOWS\SYSTEM32 в моей 64-разрядной системе Windows, функция «Duplicate Session» не работает.

Короткий ответ: не размещайте исполняемые файлы PuTTY в этом месте.

В 64-разрядных системах C:\WINDOWS\SYSTEM32 предназначен для размещения только 64-разрядных исполняемых файлов, 32-разрядные файлы Windows находятся в C:\WINDOWS\SYSWOW64.

Когда 32-разрядный исполняемый файл PuTTY запускается в 64-разрядной системе, он по умолчанию вообще не видит «настоящего» C:\WINDOWS\SYSTEM32, поскольку File System Redirector обеспечивает, чтобы работающая программа видела только соответствующие типы двоичных файлов в SYSTEM32. Таким образом, операции PuTTY, требующие доступа к собственным исполняемым файлам, такие как «New Session» и «Duplicate Session», работать не будут.

7.23. После обновления PuTTY до версии 0.68 я больше не могу подключаться к своему встроенному устройству или оборудованию.

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

Протокол SSH недавно обзавелся новым «режимом терминала» IUTF8, который PuTTY передает по умолчанию (см. раздел 4.24.2 документации). Это первый новый режим терминала с момента определения протокола SSH-2. И хотя предполагается, что серверы должны игнорировать режимы, о которых они не знают, некоторые серверы с ошибками могут бесцеремонно закрывать соединение, если увидят что-то, чего они не распознают. Эта ошибка, по-видимому, чаще всего встречается у SSH-серверов встраиваемых устройств, сетевого оборудования и т.п.

Если вы считаете, что у вас есть такой сервер, то начиная с версии 0.69 вы можете отключить отправку режима IUTF8: на панели «SSH/TTY» выберите в списке IUTF8, выберите «Nothing» и нажмите «Set». (В версии 0.68 отключить отправку этого режима невозможно.)

7.24. Начиная с версии 0.78, я не могу найти, где настроить закрытый ключ SSH.

В PuTTY 0.78 элемент управления «Private key file for authentication», в котором вы указывали файл .PPK для аутентификации с открытым ключом, переместился на новую панель «Credentials». Ее можно найти открыв категорию «SSH», затем подкатегорию «Auth», и в ней выбрав «Credentials». На этой странице вы найдете кнопку «Browse...», которую вам и нужно использовать для выбора файла .PPK для аутентификации, как описано в разделе 4.22.1 документации.

(Это элемент управления находился на панели «Auth» с момента появления аутентификации с открытым ключом в 2002 году, поэтому многие онлайн-руководства все еще описывают его в том месте. Элементы управления конфигурацией были реорганизованы, чтобы освободить место для функций, добавленных в версии 0.78, таких как сертификаты OpenSSH.)

8. Вопросы безопасности

8.1. Безопасно ли загружать и использовать PuTTY на общедоступном ПК?

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

Если вы доверяете этому компьютеру, то, скорее всего, использовать PuTTY можно (но если вы не доверяете сети, загрузка PuTTY может быть подделана, поэтому лучше носить PuTTY с собой на USB-накопителе).

8.2. Что PuTTY оставляет в системе? Как мне после этого убраться?

PuTTY оставляет на компьютере некоторые записи в реестре и random seed файл (см. вопрос 5.2). Windows 7 и более поздние версии также запоминают некоторую информацию о недавно запущенных сеансах для «списка переходов».

Если вы используете PuTTY на общедоступном или чужом ПК, возможно, вам захочется очистить эту информацию перед уходом. Вы можете сделать это автоматически, выполнив команду putty -cleanup. См. раздел 3.11.2 документации для более подробной информации. (Обратите внимание, что в многопользовательских системах эта команда удаляет настройки только для текущего пользователя).

Если PuTTY была установлена инсталлятором, она также появится в разделе «Add/Remove Programs». Текущие версии программы установки не предлагают удалить вышеупомянутые элементы, поэтому, если вы хотите их удалить, то перед деинсталляцией следует запустить команду putty -cleanup.

8.3. Почему теперь PuTTY поддерживает DSA, когда ранее на сайте говорилось о его небезопасности?

У DSA есть серьезный недостаток при плохой реализации: он слишком сильно полагается на генератор случайных чисел. Если генератор случайных чисел создает число, которое злоумышленник может предсказать, то закрытый ключ DSA становится скомпрометированным, а это означает, что злоумышленник может войти от вашего именем во все системы, которые принимают этот ключ.

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

Недавно добавленные методы подписи на эллиптических кривых также являются алгоритмами типа DSA, поэтому в принципе имеют ту же слабость. Наша реализация ECDSA использует ту же защиту, что и DSA, в то время как наша реализация Ed25519 использует аналогичную систему (но с различиями в деталях), которую предписывает спецификация Ed25519.

8.4. Не мог ли Pageant использовать VirtualLock(), для предотвращения записи закрытых ключей на диск?

К сожалению, нет. Функция VirtualLock() в Windows API не справляется со своей задачей: она может препятствовать записи небольших фрагментов памяти процесса на диск, пока процесс активен, но она не предотвращает полную выгрузку всей памяти процесса в файл подкачки, когда процесс долгое время неактивен. А Pageant большую часть времени проводит в бездействии.

8.5. Является ли версия PuTTY в Microsoft Store официальной?

Бесплатное приложение «PuTTY» по этой ссылке публикуется и поддерживается нами. Там представлена последняя версия, которая обычно обновляется в течение нескольких дней после публикации ее на нашем сайте.

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

Первой версией, которую мы опубликовали в Microsoft Store, была 0.76 (через некоторое время после ее первоначального выпуска на нашем сайте).

9. Административные вопросы

9.1. Является ли putty.org вашим сайтом?

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

Официальный сайт PuTTY, управляемый командой разработчиков PuTTY, всегда находился по адресу https://www.chiark.greenend.org.uk/~sgtatham/putty/.

9.2. Хотите, я зарегистрирую для вас более красивое доменное имя?

Нет, спасибо. Даже если вы сможете найти такой домен (большинство из них, похоже, уже зарегистрированы людьми, которые даже не спрашивали, нужен ли он нам, прежде чем подать заявку), мы довольны тем, что веб-сайт PuTTY находится именно там, где он есть. Его несложно найти (просто введите «putty» в google.com, и мы окажемся первой ссылкой), и мы не считаем, что административные хлопоты, связанные с переносом сайта, будут стоить полученных преимуществ.

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

9.3. Хотели бы вы бесплатный хостинг для веб-сайта PuTTY?

У нас уже есть, спасибо.

9.4. Не могли бы вы дать ссылку на мою страницу с веб-сайта PuTTY?

Только если содержимое вашей веб-страницы представляет прямой интерес для пользователей PuTTY. Если ваш контент не связан или имеет лишь косвенное отношение к PuTTY, то ваша ссылка будет просто рекламой.

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

Официальный сайт PuTTY высоко оценивается Google именно по этой причине: многие люди ссылаются на него просто потому, что им нравится PuTTY, причем нам никогда не приходилось просить кого-либо ссылаться на нас. Мы считаем, что было бы злоупотреблением этим уважением, если бы мы начали использовать его для повышения рейтинга сайтов случайных рекламодателей. Если вы хотите, чтобы ваш сайт имел высокий рейтинг в Google, мы бы пожелали, чтобы вы добились этого так же, как мы — будучи достаточно хорошими в своем деле, чтобы люди ссылались на вас просто потому, что вы им нравитесь.

В частности, мы не заинтересованы в торговле ссылками за деньги (см. выше), и мы, конечно, не заинтересованы в обмене ссылками на другие ссылки (поскольку на нашем веб-сайте нет рекламы, наш рейтинг в Google для нас не имеет прямого значения). Если мы не хотим ссылаться на вас бесплатно, то, вероятно, мы вообще не захотим ссылаться на вас.

Если у вас есть программное обеспечение, основанное на PuTTY, или специально разработанное для взаимодействия с PuTTY, или каким-либо другим образом представляющее реальный интерес для пользователей PuTTY, то мы, вероятно, будем рады добавить ссылку на вас на нашу страницу Links. А если вы управляете особенно ценным зеркалом веб-сайта PuTTY, мы, возможно, будем заинтересованы в размещении ссылки на вас на нашей странице Mirrors.

9.5. Почему бы вам не перенести PuTTY на SourceForge?

Отчасти потому, что мы не хотим менять местоположение веб-сайта (см. вопрос 9.2).

Кроме того, по соображениям безопасности. PuTTY — это продукт для обеспечения безопасности, и поэтому особенно важно защищать код и веб-сайт от несанкционированных модификаций, которые могут внести тонкие изъяны в систему безопасности.

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

Не в обиду SourceForge, я считаю, они делают прекрасную работу. Но они не идеальны для всех, и, в частности, не идеальны для нас.

9.6. Почему я не могу подписаться на рассылку putty-bugs?

Потому что вы не входите в состав основной команды разработчиков PuTTY. Список рассылки putty-bugs — это не обычное место для дискуссий. Это контактный адрес для основных разработчиков и внутренняя рассылка для обсуждения внутренних вопросов. Если бы мы открыли ее для всех, она бы стала похожей на новостную группу, и мы стали полностью перегружены от объема трафика. Нам уже сейчас трудно поддерживать эту рассылку в ее текущем виде.

9.7. Если putty-bugs не является общей рассылкой, то что является?

Насколько нам известно, такой не существует.

Если кто-то другой захочет создать список рассылки или другой форум для пользователей PuTTY, чтобы помогать друг другу в решении общих проблем, мы будем только рады, хотя у команды PuTTY почти наверняка не будет времени его читать. Вероятно, лучше использовать для этой цели одну из существующих новостных групп (см. раздел B.1.2 документации).

9.8. Как я могу сделать пожертвование на развитие PuTTY?

Пожалуйста, не чувствуйте себя обязанными.

PuTTY — полностью бесплатное программное обеспечение. Мы считаем очень важным, чтобы каждый, кто хочет использовать PuTTY, мог это сделать, независимо от наличия у него средств. Поэтому последнее, что мы хотели бы, это заставить пользователей PuTTY чувствовать себя виноватыми из-за того, что они не сделали нам пожертвований. Если вы хотите сохранить свои деньги, пожалуйста, сохраните их. Нам и в голову не придет о чем-либо просить.

После всего сказанного, если вы все же хотите дать нам денег, мы не будем спорить :-) Самый простой способ сделать пожертвование — это отправить деньги на адрес anakin@pobox.com с помощью PayPal. Если вам не нравится PayPal, свяжитесь с нами, возможно, мы сможем найти альтернативные способы.

Небольшие донаты (десятки долларов или евро), скорее всего, будут потрачены на пиво или карри, что поможет мотивировать команду волонтеров продолжать делать наше дело для всего мира. Более крупные пожертвования будут потрачены на что-то, что действительно поспособствует разработке, если мы сможем найти что-то подходящее (возможно, новое оборудование или новую версию Windows), но если мы не сможем ничего придумать, то мы просто распределим эти деньги между разработчиками. Если вы хотите убедиться, что ваше пожертвование пойдет на что-то стоящее, сначала спросите нас. Если вам не нравятся эти условия, вы можете не жертвовать. Мы не возражаем.

9.9. Могу ли я размещать PuTTY на обложке диска / распространять его с другим ПО / и т.д.?

Да. В большинстве случаев вам не нужно спрашивать разрешения, наша лицензия уже дает вам такое разрешение.

См. раздел B.9 в документации для более подробной информации.

9.10. Можете ли вы подписать соглашение о возмещении ущерба в случае проблем с безопасностью в PuTTY ?

Нет!

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

Есть две причины, по которым PuTTY не является аналогом физического замка в данном контексте. Во-первых, программные продукты не имеют случайных различий в разных копиях одной и той же версии: если у PuTTY есть уязвимость (что случается, хотя мы делаем все возможное, чтобы это предотвратить, и быстро реагируем в случае возникновения), то каждая копия PuTTY будет иметь такую ​​же уязвимость, поэтому она, вероятно, затронет всех пользователей одновременно. Таким образом, даже если бы все наши пользователи платили нам за использование PuTTY, мы не смогли бы одновременно выплатить каждому пострадавшему компенсацию, превышающую сумму, которую они заплатили нам изначально. Это просто не сработает.

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

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

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

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

9.11. Можете ли вы подписать форму, предоставляющую нам разрешение на использование/распространение PuTTY?

Если ваша форма содержит какую-либо клаузу вроде «нижеподписавшийся заявляет и гарантирует», мы не собираемся ее подписывать. Это особенно справедливо, если нас просят гарантировать безопасность PuTTY (см. вопрос 9.10). Но на самом деле не имеет значения, что мы должны гарантировать: даже если это то, в чем мы уверены, например, что мы не нарушаем авторские права третьих лиц, мы не будем подписывать документ, принимающий на себя какую-либо юридическую или финансовую ответственность. Просто потому, что у проекта разработки PuTTY нет дохода, из которого можно было бы удовлетворить эту ответственность или оплатить юридические издержки, если в этом возникнет необходимость. Мы не можем позволить себе быть подверженными судебным искам. Уверяем вас, что мы сделали все возможное, если для вас это недостаточно, мы сожалеем.

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

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

9.12. Можете ли вы написать нам официальное уведомление о разрешении на использование PuTTY?

В принципе, могли бы, но не совсем понятно, какая от этого польза. Если вы считаете, что существует серьезная вероятность того, что один из владельцев авторских прав на PuTTY подаст на вас в суд, то вам, вероятно, потребуется подписанное уведомление от всех них. А мы бы не смогли этого обеспечить, даже если бы захотели, поскольку многие из владельцев авторских прав — это люди, которые в прошлом внесли свой вклад и с которыми впоследствии мы потеряли связь. Поэтому лучшее, что мы могли бы сделать, чисто теоретически, это подписать документ основной командой разработчиков, что не гарантирует вам, что какой-то другой правообладатель не подаст в суд.

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

9.13. Можете ли вы подписать что-нибудь для нас?

Нет, если только не существует невероятно веской причины.

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

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

9.14. Если вы ничего не подпишете, можете ли вы дать нам какие-то гарантии, что в будущем вы не сделаете PuTTY программой с закрытым исходным кодом?

И да, и нет.

Если вам нужна гарантия того, что какая-то текущая версия PuTTY, которую вы уже загрузили, останется бесплатной, то эта гарантия у вас уже есть: она называется лицензией PuTTY. Она предоставляет вам разрешение на использование, распространение, и копирование программного обеспечения, к которому она применяется. Как только мы предоставили это разрешение (а мы его предоставили), мы не можем просто отозвать его.

С другой стороны, если вам нужна гарантия того, что будущие версии PuTTY не будут иметь закрытый исходный код, это сложнее. В принципе, мы могли бы подписать документ, заявляя, что мы никогда не выпустим PuTTY с закрытым исходным кодом, но это не станет гарантией того, что мы будем продолжать выпускать PuTTY с открытым исходным кодом: у нас все равно будет возможность вообще прекратить разработку PuTTY, что наверняка было бы для вас еще хуже чем сделать ее с закрытым исходным кодом! (И мы почти наверняка не захотели бы подписывать документ, гарантирующий, что мы действительно продолжим разработку PuTTY, и уж тем более не станем подписывать его бесплатно. Подобные документы называются трудовыми договорами и обычно не подписываются, разве что в обмен на приличную зарплату.)

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

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

9.15. Можете ли вы предоставить нам информацию об экспортном контроле/сертификацию FIPS для PuTTY?

Некоторые люди просили нас предоставить Export Control Classification Number (ECCN) для PuTTY.

Мы не знаем, есть ли оно у нас. И как команда разработчиков свободного программного обеспечения, базирующаяся в Великобритании, у нас нет ни времени, ни денег, ни сил разбираться с американской бюрократией и проводить дальнейшее расследование. Мы считаем, что PuTTY попадает под пункт 5D002 в списке US Commerce Control List, но это не следует воспринимать как окончательное утверждение. Если вам нужна дополнительная информация, вам следует обратиться за профессиональной юридической консультацией. То же самое относится к законодательным требованиям и ограничениям других стран.

Также некоторые люди просили нас провести FIPS-сертификацию инструментов PuTTY. Если кто-то другой не готов выполнить необходимую работу и оплатить все расходы, мы не собираемся этого делать.

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

Мы периодически получаем запросы подобного рода от организаций, которые, по-видимому, отправляют стандартное письмо всем, кто значится в их большой таблице «поставщиков программного обеспечения» и требуют от всех ответить на длинный список вопросов о поддерживаемых версиях операционных систем, условиях платной поддержки, соответствии разнообразным местным нормативам, о которых мы даже не слышали, контактных телефонах, и других административных аспектах. Многие из вопросов очевидно лишены смысла, когда речь идет о PuTTY (мы вообще не предоставляем платную поддержку!), на большинство остальных можно было бы ответить, лишь бегло просмотрев наш сайт, а на некоторые мы просто не желаем отвечать (мы — частные лица, зачем нам сообщать наши домашние номера телефонов крупным корпорациям?).

У нас нет привычки отвечать на эти анкеты, поскольку мы не являемся поставщиком программного обеспечения.

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

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

Дело не в том, что мы не хотим предоставлять информацию. Для вашего удобства мы размещаем на нашем сайте как можно больше информации. И если вам действительно нужно узнать о PuTTY какой-то факт, который вы не смогли найти на сайте (и который не кажется неприменимым к свободному ПО), то, пожалуйста, обратитесь к нам, и мы постараемся ответить наилучшим образом. Но мы создали веб-сайт и этот FAQ именно для того, чтобы не отвечать на одни и те же вопросы снова и снова, и поэтому мы не готовы заполнять шаблонные анкеты для тех, кто не приложил усилий, чтобы сначала найти ответы самим.

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

9.17. Файлы sha1sums / sha256sums на вашей странице загрузки не соответствуют двоичным файлам.

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

Страница загрузки PuTTY содержит более одной версии программы. Есть «latest release» — последняя релизная версия, и есть «development snapshots» — ежедневные снимки разработки, а когда мы находимся на пороге выпуска релиза, есть также «pre-release» — предрелизные сборки готовящейся новой версии. Каждая из них имеет свой набор исполняемых файлов и свой набор файлов контрольных сумм, которые к ним относятся.

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

Еще один момент, на который следует обратить внимание: начиная с версии 0.71 исполняемые файлы, такие как putty.exe, имеют два варианта для каждой платформы: самостоятельные версии exe-файлов, каждая из которых содержит внутри себя встроенную справку, и версии, устанавливаемые с помощью инсталлятора, которые используют отдельный файл справки, доступный после установки. Мы предоставляем контрольные суммы для обеих версий, в последнем случае после имени файла указывается (installer version).

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

10. Разные вопросы

10.1. Является ли PuTTY портом OpenSSH или основан на OpenSSH или OpenSSL?

Нет, не является. PuTTY практически полностью состоит из кода, написанного для PuTTY с нуля. Единственный код, который мы взяли из OpenSSH — это детектор компенсационных атак SSH-1 CRC, написанный CORE SDI S.A. Мы не используем ни одной строки кода из OpenSSL.

10.2. Где можно купить жвачку для рук?

Вы зашли не на тот сайт. Единственное «PuTTY», о котором мы здесь знаем, это название компьютерной программы.

Если вам нужна «putty» в виде жидкой пластилиновой игрушки, команда PuTTY может лично порекомендовать вам «Thinking Putty», которую можно приобрести в «Crazy Aaron's Putty World» по адресу www.puttyworld.com.

10.3. Что означает «PuTTY»?

Это название популярного SSH и Telnet клиента. Любое другое значение находится в глазах смотрящего. Ходили слухи, что «PuTTY» — это антоним getty, или что это та штука, которая делает вашу Windows полезной, или что это игра слов от «Plutonium TeleTYpe». Мы не можем комментировать подобные утверждения.

10.4. Как произносится слово «PuTTY»?

Точно так же, как английское слово «putty», которое мы произносим как /ˈpʌti/.