PuTTY: Часто Задаваемые Вопросы
- 1. Введение
- 2. Функции, поддерживаемые PuTTY
- 2.1. Поддерживает ли PuTTY алгоритм SSH-2?
- 2.2. Поддерживает ли PuTTY работу с приватными ключами OpenSSH или
ssh.com? - 2.3. Поддерживает ли PuTTY алгоритм SSH-1?
- 2.4. Поддерживает ли PuTTY локальное echo?
- 2.5. Поддерживает ли PuTTY сохранение настроек, таким образом, чтобы я не должен изменять их каждый раз?
- 2.6. Поддерживает ли PuTTY хранение настроек на диске в файлах?
- 2.7. Поддерживает ли PuTTY полноэкранный режим, как экран DOS?
- 2.8. Поддерживает ли PuTTY сохранение моих паролей, таким образом, чтобы не пришлось печатать их каждый раз?
- 2.9. Можно ли отключить раздражающие всплывающие подсказки?
- 2.10. Есть ли в планах разработка собственного SSH сервера, для включения в PuTTY Suite?
- 2.11. Может ли PSCP или PSFTP передавать файлы в режиме ASCII?
- 3. Порты и другие ОС
- 4. Внедрение PuTTY в другие программы
- 5. Детали операции PuTTY
- 6. Вопросы HOWTO
- 6.1. Какой логин/пароль я должен использовать?
- 6.2. Какие команды я могу набирать в окне терминала PuTTY?
- 6.3. Как сделать, чтобы PuTTY стартовал развёрнутым на полный экран?
- 6.4. Как сделать ярлык для запуска определённой сессии?
- 6.5. Как начать SSH сессию прямо из командной строки?
- 6.6. Как копировать/вставить между PuTTY и другими приложениями Windows?
- 6.7. Как использовать все функции PyTTY (публичные ключи, проксирование, выбор шифра, и т.д.) в PSCP, PSFTP и Plink?
- 6.8. Как использовать PSCP.EXE? Я кликаю на значок, но он сразу закрывается.
- 6.9. Как при помощи PSCP копировать файл, содержащий в своём имени пробельные символы?
- 7. Устранение неполадок
- 7.1. Почему я получаю ошибку «Incorrect MAC received on packet»?
- 7.2. Почему я получаю ошибку «Fatal: Protocol error: Expected control record» в PSCP?
- 7.3. Я выбираю цвет в панели цветов, но цвет терминала не меняется.
- 7.4. Plink в Windows 95 говорит, что не может найти файл
WS2_32.DLL. - 7.5. После попытки установить SSH-2 соединение, PuTTY говорит «Out of memory» и зависает.
- 7.6. При попытке копировать файл, PSCP и PSFTP говорят мне «Out of memory» и зависает.
- 7.7. PSFTP передаёт файлы значительно медленнее, чем PSCP.
- 7.8. Когда я запускаю полноцветные приложения, я вижу чёрные области там, где расцветка должна быть, и наоборот.
- 7.9. Я меняю настройки терминала, но ничего не происходит.
- 7.10. Мои сессии PuTTY неожиданно закрываются после некоторого времени простоя.
- 7.11. Соединения PuTTY прерываются по тайм-ауту слишком быстро, даже при кратковременных потерях связи.
- 7.12. Когда я читаю бинарный файл командой
cat, получаю «PuTTYPuTTYPuTTY» в командную строку. - 7.13. Когда я читаю бинарный файл командой
cat, заголовок окна меняется на какую-то ерунду. - 7.14. Клавиатура перестаёт работать, когда PuTTY отображает поле ввода пароля.
- 7.15. Одна или более функциональных клавиш не делают то, что я ожидал в серверном приложении.
- 7.16. После того, как мой SSH сервер был модернизирован до OpenSSH 3.1p1/3.4p1, больше не получается соединиться с ним используя PuTTY.
- 7.17. Почему я получаю ошибку «Couldn't load private key from …»? Почему PuTTYgen может загрузить мой ключ, а PuTTY нет?
- 7.18. Когда я соединяюсь с системой Red Hat Linux 8.0, некоторые символы не отображаются.
- 7.19. С тех пор, как я обновил PuTTY до версии 0.54, scrollback прекратил работать, когда я выполняю команду
screen. - 7.20. После обновления Windows XP до Service Pack 2, не получается использовать локальные адреса наподобие
127.0.0.2. - 7.21. Команды PSFTP, кажется, пропускают разделители директорий (слеши /).
- 7.22. Хотите услышать о «Software caused connection abort»?
- 7.23. Моя SSH-2 сессия очень часто блокируется на несколько секунд.
- 7.24. Не могу запустить PuTTY. Windows говорит, что «the application configuration is incorrect».
- 8. Вопросы безопасности
- 8.1. Безопасно ли использовать PuTTY на публичном компьютере?
- 8.2. Какие следы PuTTY оставляет в системе? Как можно это почистить?
- 8.3. Каким образом PuTTY теперь поддерживает DSA, насколько он небезопасен?
- 8.4. Не мог бы Pageant использовать
VirtualLock()для запрета записи приватных ключей на диск?
- 9. Административные вопросы
- 9.1. Я такой добрый, что хочу зарегистрировать вам домен покрасивей, хотите?
- 9.2. А как на счёт бесплатного хостинга?
- 9.3. Обменяемся ссылками?
- 9.4. Почему вы не перенесёте проект PuTTY на SourceForge?
- 9.5. Почему я не могу подписаться на почтовую рассылку о багах butty-bugs?
- 9.6. Если putty-bugs это не general-subscription, тогда что же это?
- 9.7. Денег куры не клюют, хочу поделиться с командой PuTTY!
- 9.8. Имею ли я право записывать PuTTY на CD, распространять, и т.п.?
- 9.9. Не могли бы вы подписать эту форму, предоставляющую нам разрешение использовать/распространить PuTTY?
- 9.10. Не могли бы вы подписать эту форму, предоставляющую нам разрешение на использование/распространение PuTTY?
- 9.11. Не могли бы вы написать нам официальное уведомление о разрешении использовать PuTTY?
- 9.12. Не могли бы вы подписать что-нибудь для нас?
- 9.13. Если вы ничего не будете подписывать, можете ли дать нам своего рода гарантию, что в будущем вы не закроете исходные коды?
- 9.14. Не могли бы вы предоставить нам экспортную информацию об управлении / аттестация FIPS для PuTTY?
- 10. Разные вопросы
1. Введение
1.1. Что такое PuTTY?
PuTTY — клиент для SSH, Telnet и Rlogin, сетевых протоколов, используемых для удалённого управления компьютером через сеть.
Простой пример: вы запускаете PuTTY на машине с ОС Windows, и говорите ей, например, соединиться с UNIX машиной. PuTTY открывает окно терминала, и всё, что вы набираете в командной строке, отправляется прямиком на UNIX, и всё, что удалённый терминал посылает в ответ, отобразится перед вами. Таким образом, вы можете работать с удалённой Unix машиной так, как будто вы находитесь непосредственно в её консоли.
2. Функции, поддерживаемые PuTTY
Вообще то, если вы хотите узнать, поддерживает ли PuTTY ту или иную функцию, вы должны искать это на веб-сайте PuTTY.
2.1. Поддерживает ли PuTTY алгоритм SSH-2?
Да, поддержка протокола SSH-2 доступна в PuTTY начиная с версии 0.50. Аутентификация с открытым ключом для RSA и DSA доступна с версии 0.52.
2.2. Поддерживает ли PuTTY работу с приватными ключами OpenSSH или ssh.com?
Нет, в PuTTY нет нативной поддержки такого рода ключей.
Но начиная с версии 0.53, PuTTYgen умеет конвертировать файлы приватных ключей OpenSSH и ssh.com в формат PuTTY.
2.3. Поддерживает ли PuTTY алгоритм SSH-1?
Да, поддержка протокола SSH-1 была в PuTTY всегда.
2.4. Поддерживает ли PuTTY локальное echo?
Да, начиная с версии 0.52, в PuTTY реализована надлежащая поддержка локального echo.
In version 0.51 and before, local echo could not be separated from local line editing (where you type a line of text locally, and it is not sent to the server until you press Return, so you have the chance to edit it and correct mistakes before the server sees it). New in version 0.52, local echo and local line editing are separate options, and by default PuTTY will try to determine automatically whether to enable them or not, based on which protocol you have selected and also based on hints from the server. If you have a problem with PuTTY's default choice, you can force each option to be enabled or disabled as you choose. The controls are in the Terminal panel, in the section marked «Line discipline options».
2.5. Поддерживает ли PuTTY сохранение настроек, чтобы не изменять их каждый раз?
Да, все настройки PuTTY могут быть сохранены в именном профиле сессии. Так же вы можете установить настройки по умолчанию для всех новых сессий. Подробнее о том, как это сделать, смотрите в параграфе 4.1.2 документации PuTTY.
2.6. Поддерживает ли PuTTY хранение настроек в обычных файлах на диске?
В настоящее время нет, хотя параграф 4.26 документации PuTTY, описывает метод достижения того же самого эффекта.
2.7. Поддерживает ли PuTTY работу в полноэкранном режиме, наподобие DOS?
Да, эта функция доступна в PuTTY начиная с версии 0.52.
2.8. Поддерживает ли PuTTY сохранение паролей, чтобы не пришлось их вводить каждый раз при логине?
Нет, PuTTY не сохраняет паролей.
Хранение пароля на диске является не лучшей идеей из очевидных соображений безопасности: любой, кто получает доступ к вашей машине, может узнать пароль и использовать его в своих корыстных целях.
Кроме того, для PuTTY нет никакой возможности автоматически отправить ваш пароль в Telnet-сессию, поскольку протокол Telnet не подразумевает для клиентского ПО никаких индикаций процесса входа в систему и строки ввода пароля.
В теории, для SSH-сессии сохранение пароля было бы возможно, однако, как представляется, в этом нет особого смысла, поскольку SSH поддерживает аутентификацию с открытым ключом, которая является более гибкой и безопасной. См. главу 8 документации PuTTY для всестороннего обсуждения Public Key Authentication.
2.9. Is there an option to turn off the annoying host key prompts?
No, there isn't. And there won't be. Even if you write it yourself and send us the patch, we won't accept it.
Those annoying host key prompts are the whole point of SSH. Without them, all the cryptographic technology SSH uses to secure your session is doing nothing more than making an attacker's job slightly harder; instead of sitting between you and the server with a packet sniffer, the attacker must actually subvert a router and start modifying the packets going back and forth. But that's not all that much harder than just sniffing; and without host key checking, it will go completely undetected by client or server.
Host key checking is your guarantee that the encryption you put on your data at the client end is the same encryption taken off the data at the server end; it's your guarantee that it hasn't been removed and replaced somewhere on the way. Host key checking makes the attacker's job astronomically hard, compared to packet sniffing, and even compared to subverting a router. Instead of applying a little intelligence and keeping an eye on Bugtraq, the attacker must now perform a brute-force attack against at least one military-strength cipher. That insignificant host key prompt really does make that much difference.
If you're having a specific problem with host key checking — perhaps you want an automated batch job to make use of PSCP or Plink, and the interactive host key prompt is hanging the batch process — then the right way to fix it is to add the correct host key to the Registry in advance. That way, you retain the important feature of host key checking: the right key will be accepted and the wrong ones will not. Adding an option to turn host key checking off completely is the wrong solution and we will not do it.
If you have host keys available in the common known_hosts format, we have a script called kh2reg.py to convert them to a Windows .REG file, which can be installed ahead of time by double-clicking or using REGEDIT.
2.10. Есть ли в планах разработка собственного SSH-сервера, для включения в PuTTY Suite?
No. The only reason we might want to would be if we could easily re-use existing code and significantly cut down the effort. We don't believe this is the case; there just isn't enough common ground between an SSH client and server to make it worthwhile.
If someone else wants to use bits of PuTTY in the process of writing a Windows SSH server, they'd be perfectly welcome to of course, but I really can't see it being a lot less effort for us to do that than it would be for us to write a server from the ground up. We don't have time, and we don't have motivation. The code is available if anyone else wants to try it.
2.11. Может ли PSCP или PSFTP передавать файлы в режиме ASCII?
К сожалению, нет.
До недавнего времени это являлось ограничением протоколов передачи файлов. Протоколы SCP и SFTP не имели понятия о передаче файлов в режиме, отличном от binary (это по-прежнему относится к SCP).
Текущая черновая спецификация протокола SFTP уже предлагает средства реализации передачи ASCII. Так что, в скором времени в PSCP/PSFTP будет реализована поддержка данного режима.
3. Порты и другие ОС
Конечная цель для PuTTY — быть многоплатформенной программой, способной работать одинаково хорошо, по крайней мере, на ОС Windows, Mac OS и Unix.
Портирование станет проще, как только у PuTTY появится обобщённый уровень портирования, проводя чёткую грань между платформо-зависимым и независимым кодом. Главная цель состоит в том, чтобы этот слой развивался естественно, как общая часть процесса. Сейчас выпущен порт PuTTY под Unix, и как представляется, этот план работает.
3.1. Какие существуют порты PuTTY?
Релизы PuTTY доступны для всех Win32 систем (Windows 9x/NT/2k/XP/Vista) и Unix. В черновых сборках доступны частичные порты под Mac OS.
В настоящее время у нас нет качественных портов для любых других систем. Если кто-то сказал вам, что у нас есть порты под EPOC или iPaq, или любая другая модификация порт PuTTY, они ошибались. Мы этого не делали.
Но, есть некоторые порты к различным платформам, созданные сторонними разработчиками, полный список здесь.
3.2. Есть ли порт PuTTY под Unix?
Да, есть Unix порты большинства инструментов PuTTY, а так же одно совершенно новое приложение.
В архиве с исходным кодом найдите подкаталог /unix. Есть несколько способов скомпилировать PuTTY, включая обычные configure/make, см. файла README в архиве. Под Unix вы можете собрать PuTTY, Plink, PuTTYgen, PSCP, PSFTP, а так же pterm, программу, похожую на обычный xterm, но с поддержкой всех возможностей PuTTY. Под Unix нет порта Pageant.
При отсутствии в вашей системе графической библиотеки Gtk, вы всё еще можете собрать консольные утилиты PuTTY.
Обратите внимание, что Unix порт PuTTY в основном тестировался только на Linux. Возможны проблемы переносимости на другие ядра, например BSD pty, и т.п.
3.3. Зачем нужен порт под Unix? Когда есть OpenSSH.
Истина скрывается в мелочах. pterm найдут полезным те, кто привык к xterm, но хочет использовать эмуляторы терминала PuTTY. Plink, по-видимому, найдёт свою нишу среди людей, которые находят OpenSSL и OpenSSH слишком сложными для установки и использования. Некоторым людям необходимо генерировать большое количество SSH ключей, PuTTYgen под Unix поможет автоматизировать эти процессы.
Также были преимущества разработки. Портирование PuTTY на Unix дало нам ценный опыт для будущих портов, мы открыли для себя превосходный инструмент Linux Valgrind, который помог с отладкой, и улучшил стабильность PuTTY относительно всех остальных платформ.
Однако, если вы не нашли для себя причин замены OpenSSH на PuTTY, вероятно вы правы. Мы не ожидаем, что наш Unix порт подойдёт для всех.
3.4. Будет ли порт под Windows CE или PocketPC?
Мы проделали определенную работу, но она достигла только ранних стадий, и конечно, пока не юзабельно. В настоящее время мы не работаем над этим.
Однако, по адресу http://www.pocketputty.net/ находится порт сторонних разработчиков.
3.5. Есть ли порт под Windows 3.1?
PuTTY — 32-разрядное приложение, таким образом оно не будет работать на устаревшей Windows 3.1, как родная 16-битная программа. И было бы очень трудно портировать из-за мерзких механизмов распределения памяти в Windows 3.1.
Тем не менее, теоретически возможно скомпилировать существующие исходники PuTTY под Win32s (расширение Windows 3.1, позволяющее запускать 32-битные приложения). Но для этого вам понадобится специальный C компилятор, потому как современные версии Visual C давно перестали поддерживать Win32s. Кроме того, в последний раз, когда мы экспериментировали с Win32s, работало это не очень хорошо.
Если вас интересует работа PuTTY под Windows 3.1, помощь и тестирование в этой области очень приветствуется!
3.6. Будет ли порт под Мак?
Есть несколько ответов на этот вопрос:
- Порт PuTTY под Unix/Gtk уже полностью работает на Mac OS X в качестве приложения X11.
- Начата разработка нативного (Cocoa) порта под Mac OS X. В теории он пригоден для использования, но до релиза еще далеко. В настоящее время работа стоит, и она вряд ли будет завершена, если никто не поможет с разработкой.
- Отдельный порт под Mac OS Classic (pre-OSX) также в прогрессе, но тоже еще не готов.
3.7. Будет ли порт под EPOC?
Я надеюсь, что это так. Но с учётом того, что разработка портов продвигается не очень быстро даже на системах, известных разработчикам, может пройти много времени, прежде чем любой из нас приступит к изучению новой системы и разработке портов для неё.
Тем не менее, некоторая работа уже проделана другими людьми, см. страницу "Ссылки".
3.8. Будет ли порт под iPhone?
У нас нет планов писать такой порт самостоятельно, мы не являемся фанатами iPhone, и разработку приложений для него считаем неуклюжим и дорогим. Такой порт, вероятно, будет зависеть от застопорившегося порта под Mac OS X (см. вопрос 3.6).
Однако, есть сторонний SSH клиент под iPhone и iPod Touch, называемый pTerm, который, по-видимому, основан на PuTTY. Просим не путать, этот pTerm никак не связан с нашим аналогичным названием pterm, который представляет собой автономный эмулятор терминала для Unix систем (см. вопрос 3.2.).
4. Внедрение PuTTY в другие программы
4.1. Доступен ли SSH или Telnet код в качестве динамически подключаемая библиотеки (DLL)?
Нет, не доступен. Это потребовало бы большой реорганизации кода. И так как сам проект PuTTY не особо лоялен к DLL-библиотекам (они делают инсталляцию более подверженной ошибкам), ни один из нас не горит желанием сделать это.
Тем не менее, рефакторинг никогда не помешает, и если кто-то испытывает желания нам помочь, мы не скажем нет.
4.2. Доступен ли SSH или Telnet код в качестве компонента Visual Basic?
Нет, не доступен. Никто из команды PuTTY не использует Visual Basic, и ни у одного из нас нет особой необходимости делать SSH коннекты из VB-приложения. Кроме того, сперва это потребовало бы создания DLL-модуля. И если честно, мы не знаем, и даже не интересовались, как писать компоненты под Visual Basic.
Если кто-то предлагает сделать часть работы для нас, мы могли бы рассмотреть это. Но, в любом случае, — это была бы одна из наименее приоритетных задач.
4.3. Как использовать PuTTY для соединения по SSH из другой программы?
Лучше всего подойдёт консольная программа Plink. Если вы можете запустить Plink как второй процесс Windows, организуйте взаимодействие с вашим основным процессом, который должен быть в состоянии передавать данные процессу Plink, и получать от него ответы при помощи pipes (STDIN/STDOUT).
К примеру, это то, что делает CVS под Windows.
5. Детали операции PuTTY
5.1. Какой тип терминала использует PuTTY?
Для большинства целей, PuTTY может рассматриваться как xterm терминал.
PuTTY поддерживает некоторые другие управляющие последовательности, не поддерживаемые реальным xterm в частности, последовательности Linux, реконфигурирующие цветовую палитру консоли, или последовательности управления областью заголовка, используемые DECterm (которые отличаются от xterm; PuTTY поддерживает оба режима).
По умолчанию, PuTTY объявляет о своём типе серверу, как xterm. Если у вас с этим проблемы, можете перенастроить так, чтобы сказать что-то ещё. Например, в некоторых случаях поможет объявление vt220.
5.2. Где PuTTY хранит свои данные?
PuTTY под Windows хранит большинство своих данных (сохранённые сессии, SSH ключи) в системном реестре по адресу:
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\ HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
Кроме того, PuTTY требуется генерировать файл random number seed, для улучшения непредсказуемости случайного выбора данных, необходимых как часть SSH криптографии. По умолчанию этот файл называется PUTTY.RND и расположен в каталоге Application Data, или, в случае невозможности записи, в одном из запасных мест. Если вы хотите изменить расположение этого файла, можете прописать его путь в реестре, по адресу
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\RandSeedFile
Вы можете попросить PuTTY удалять все эти записи (см. вопрос 8.2).
В Unix системах PuTTY хранит все свои данные в директории ~/.putty.
6. HOWTO questions
6.1. Какой логин/пароль я должен использовать?
Это не тот вопрос, который вы должны спрашивать у нас.
PuTTY является средством связи для соединения с другими компьютерами. Мы разрабатываем эту программу, но мы не администрируем никакие компьютеры, к которым вы, вероятно, имеете доступ. В той же мере, что и люди, создающие web-браузеры, не ответственны за информацию, которые вы ежедневно просматриваете в интернете. Мы не можем помочь с вопросами подобного рода.
???Если вы знаете имя компьютера, с которым хотите соединиться, но не знаете имя пользователя или пароль, вы должны связаться с кем-нибудь, кто администрирует этот компьютер. Если вы не знаете кто это, есть несколько возможных способов это узнать (см. следующий вопрос).
6.2. Какие команды можно набирать в окне терминала PuTTY?
Опять-таки, это вопрос не к нам. Читайте руководства, или спросите администратора вашей системы.
PuTTY не обрабатывает команды, которые вы печатаете. PuTTY — только лишь средство связи. Оно создаёт подключение к другому компьютеру, передаёт команды, которые вы печатаете на тот другой компьютер, и возвращает ответы другого компьютера к вам. Поэтому, полный список команд, которые вы можете использовать, никак не зависит от PuTTY, а только лишь от того компьютера, с которым вы соединились, и от программного обеспечения, выполняемого на нём. Команда PuTTY ничем не может помочь вам в этом вопросе.
(Думайте о PuTTY, как об обычном телефоне. Если вы звоните кому-то, и не знаете, на каком языке вам говорить, чтобы вас понимали — это не проблема телефонной компании. Мы предоставляем только средство связи.)
If you are unsure of where to start looking for the administrator of your server, a good place to start might be to remember how you found out the host name in the PuTTY configuration. If you were given that host name by e-mail, for example, you could try asking the person who sent you that e-mail. If your company's IT department provided you with ready-made PuTTY saved sessions, then that IT department can probably also tell you something about what commands you can type during those sessions. But the PuTTY maintainer team does not administer any server you are likely to be connecting to, and cannot help you with questions of this type.
6.3. Как сделать, чтобы PuTTY стартовал развёрнутым на полный экран?
Создайте для программы обычный ярлык, и в его свойствах укажите «Run Maximized».
6.4. Как сделать ярлык для запуска определённой сессии?
Чтобы запустить сеанс PuTTY, сохранённый под именем «mysession», создайте ярлык с параметром командной строки:
\path\name\to\putty.exe -load "mysession"
(Примечание: до версии 0.53, был синтаксис @session. Этот синтаксис устарел, и может быть удалён в любой момент.)
6.5. Как начать SSH сессию прямо из командной строки?
Напишите в консоли «putty -ssh host.name». Или же создайте сохранённый сеанс, который определяет протокол SSH, и запускайте его как показано в вопросе 6.4.
6.6. Как копировать/вставить буфер обмена между окном PuTTY и другими приложениями Windows?
Copy/Paste работает так же, как и в X Window System. Используйте левую кнопку мыши, чтобы выделить текст в окне PuTTY. Весь текст автоматически скопируется в буфер по факту выделения: нет никакой потребности нажимать Ctrl-C или Ctrl-Ins, или что-нибудь ещё. Фактическое же нажатие Ctrl-C отправит символ Ctrl-C в окно терминала, что вызвать иметь неприятный эффект. Единственная вещь, которую вы должны сделать для копирования текста в буфер обмена, — это выделить его мышкой.
Чтобы вставить содержание буфера обмена в окно PuTTY, по умолчанию нужно кликнуть правой кнопкой мыши. Также можно вставить буфер, нажав сочетание клавиш Shift-Ins.
6.7. Как использовать функции PyTTY в PSCP, PSFTP и Plink (публичные ключи, проксирование, выбор шифра, и т.п.)?
Большинство основных функций, например, public keys или port forwarding доступно через опции командной строки (см. документацию).
Но всё же пока не все функции GUI доступны из командной строки, хотя мы работаем над этим. В настоящий момент, вы можете использовать большинство функций PuTTY, создав сохранённый сеанс, и затем указав его имя в качестве аргумента вместо имени хоста. Это работает с PSCP, PSFTP и Plink (но не стоит ожидать работу port forwarding в приложениях передачи файлов).
6.8. Как использовать PSCP.EXE? Я кликаю на значок, но он сразу закрывается.
PSCP — это консольное приложение, у него нет графического интерфейса. Если вы попытаетесь запустить PSCP без аргументов, то в ответ получите только лишь справочную информацию, после чего программа моментально закроется.
Чтобы использовать PSCP должным образом, запустите его из окна командной строки (см. главу 5 документации).
6.9. Как при помощи PSCP скопировать файл, содержащий в своём имени пробельные символы?
If PSCP is using the traditional SCP protocol, this is confusing. If you're specifying a file at the local end, you just use one set of quotes as you would normally do:
pscp "local filename with spaces" user@host: pscp user@host:myfile "local filename with spaces"
But if the filename you're specifying is on the remote side, you have to use backslashes and two sets of quotes:
pscp user@host:"\"remote filename with spaces\"" local_filename pscp local_filename user@host:"\"remote filename with spaces\""
Worse still, in a remote-to-local copy you have to specify the local file name explicitly, otherwise PSCP will complain that they don't match (unless you specified the -unsafe option). The following command will give an error message:
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"'.
Instead, you need to specify the local file name in full:
c:\>pscp user@host:"\"oo er\"" "oo er"
If PSCP is using the newer SFTP protocol, none of this is a problem, and all filenames with spaces in are specified using a single pair of quotes in the obvious way:
pscp "local file" user@host: pscp user@host:"remote file" .
7. Устранение неполадок
7.1. Почему я получаю ошибку «Incorrect MAC received on packet»?
Одна из распространенных причин появление такой ошибки, — это использование старых SSH-2 серверов распространяемых ssh.com. (Это не единственно возможная причина; см. раздел 10.12 документации PuTTY). Версия 2.3.0 и ниже SSH-2 сервера создаёт Message Authentication Codes неправильным способом, и ожидает, что SSH-клиент создаст их тем же самым неправильным способом. PuTTY создаёт MAC корректно по умолчанию, и, следовательно, такие серверы будут не в состоянии работать с этим.
Если вы используете PuTTY версии 0.52 или выше, для клиента такая ошибка обработается прозрачно: PuTTY должен обнаружить ошибочные серверы по их объявленному номеру версии, и автоматически начать создавать MAC тем же самым неправильным способом, как они это делают, таким образом, PuTTY в состоянии работать с такими серверами.
Если вы используете PuTTY версии 0.51 или ниже, можете разрешить работу в обход, установив в настройках SSH флаг «Imitate SSH2 MAC bug». Возможно вам придётся сделать тоже самое и в версии 0.52, если PuTTY не сможет распознать багнутый сервер.
В этом контексте MAC означает "Код Идентификации Сообщения". Это криптографический термин, и у него нет ничего общего с сетевым MAC-адресом (Media Access Control).
7.2. В PSCP я получаю ошибку «Fatal: Protocol error: Expected control record», что это значит?
Такое случается, если PSCP ожидал получить данные от сервера, которые являлись бы частью протокола PSCP, а вместо этого он получил данные, которые не имеют никакого отношения к этому протоколу.
Такое случается почти всегда, если скрипты запуска в вашей учётной записи на сервере генерируют вывод. Это невозможно для PSCP, или любого другого SCP-клиента. Нельзя использовать файлы запуска (.bashrc, .cshrc и т.д.), которые генерируют вывод в неинтерактивных сессиях.
Это не проблема PuTTY. Если PSCP таким образом будет терпеть неудачу, то и все другие SCP-клиенты, вероятно, будут терпеть неудачу тем же самым способом. Проблема на стороне сервера.
7.3. Я выбираю цвет в панели цветов, но цвет терминала не меняется.
Панель Colours служит совсем для другого.
В течение сеанса PuTTY может использовать все расцветки, перечисленные в панели Colours. Это не вопрос использования только одного из этих цветов, PuTTY будет использовать их всех. Задача панели Colours состоит в том, чтобы позволить вам корректировать представление всех этих цветов. Так, для того, чтобы изменить расцветку курсора, выберите «Cursor Colour», нажмите кнопку «Modify», и выберите новый цвет из появившегося диалогового окна. Точно так же, если хотите изменить представление зелёного цвета для вашей сессии, вы должны выбрать «Default Foreground» и нажать «Modify». Кликнув на «ANSI Green», окно не перекрасится, это только лишь позволит вам корректировать оттенок зелёного, используемый, когда PuTTY будет проинструктирован сервером об отображении зелёного цвета.
7.4. Plink под Windows 95 сообщает, что не может найти файл WS2_32.DLL.
Plink требует расширенной сетевой библиотеки Windows, WinSock версии 2. Эта библиотека установлена по умолчанию в Windows 98 и выше, и на Windows NT, и даже на поздних изданиях Windows 95. Но поначалу в Win95 она отсутствовала.
Чтобы использовать Plink на такой системе, вам необходимо загрузить и установить обновление: w95ws2setup.exe
7.5. После попытки установить SSH-2 соединение, PuTTY говорит «Out of memory» и зависает.
Если такое случается только во время подключения, — это часто указывает на то, что по каким-то причинам клиент и сервер не смогли согласовать ключ шифрования сеанса. Они выполнили расчёты, которые должны были дать каждому из них тот же самый ключ, но оказались с разными ключами. Таким образом, данные, зашифрованные одним и расшифрованные другим, походят на случайный мусор.
Ошибка «out of memory» вызывается потому, что первые зашифрованные данные, которые PuTTY ожидает увидеть, являются длиной сообщения SSH. Обычно это менее 100 байт. Но если расшифровка провалилась, PuTTY увидит полностью случайную длину в районе двух гигабайт, и попытается выделить достаточно памяти для хранения несуществующего сообщения. Это немедленно приведёт к недостатку памяти и краху.
Если вдруг такое случится с вами, то весьма вероятно, это будет ошибка PuTTY, хотя возможно и ошибка SSH сервера. Не обязательно это означает то, что вы фактически исчерпали память.
7.6. При попытке копировать файл, PSCP/PSFTP говорит «Out of memory» и зависает.
Почти всегда причина такой ошибки кроется в ваших скриптах входа в систему на стороне сервера. PSCP или PSFTP получают сгенерированный сервером вывод, в то время, когда они ожидали видеть начало протокола передачи файлов, и пытаются интерпретировать этот вывод именно как протокол передачи файлов. Обычно это будет приводить к ошибке «Out of memory» (по аналогии с предыдущим вопросом 7.5).
Это проблема настройки вашей учётной записи на сервере, а не ошибка PSCP/PSFTP. Ваши сценарии входа в систему никогда не должны генерировать вывод во время неинтерактивных сеансов. Безопасная передача файлов не единственная форма удалённого доступа, который прервётся, если они это сделают.
On Unix, a simple fix is to ensure that all the parts of your login script that might generate output are in .profile (if you use a Bourne shell derivative) or .login (if you use a C shell). Putting them in more general files such as .bashrc or .cshrc is liable to lead to problems.
7.7. PSFTP передаёт файлы значительно медленнее, чем PSCP.
Рекомендуем вам обновить PSFTP до последней версии. Пропускная способность PSFTP 0.54 должна быть намного выше, чем у 0.53b и более ранних версий. Мы добавили в SFTP возможность ставить в очередь несколько блоков данных, вместо того, чтобы ждать подтверждения для каждого. (Бэкенд SCP не страдал от этой проблемы, потому как SCP — намного более простой протокол)
7.8. When I run full-colour applications, I see areas of black space where colour ought to be, or vice versa.
You almost certainly need to change the «Use background colour to erase screen» setting in the Terminal panel. If there is too much black space (the commoner situation), you should enable it, while if there is too much colour, you should disable it. (See section 4.3.5.)
In old versions of PuTTY, this was disabled by default, and would not take effect until you reset the terminal (see question 7.9). Since 0.54, it is enabled by default, and changes take effect immediately.
7.9. Я меняю настройки терминала, но ничего не происходит.
Некоторые из опций терминала (особенно Auto Wrap и background-colour screen erase) назначают настройки по умолчанию, а не активные в настоящий момент установки. Сервер может отправить последовательности, изменяющие эти опции в середине сеанса, но когда терминал сброшен (самим сервером, или по нажатии «Reset Terminal» в системного меню), значения по умолчанию восстанавливаются.
В версиях 0.53b и ниже, если изменить одну из таких опций в середине сеанса, изменения не вступят в силу немедленно, а только когда вы сбросите терминал.
Начиная с версии PuTTY 0.54, поведение изменилось, все внесённые изменения вступают в силу немедленно.
7.10. My PuTTY sessions unexpectedly close after they are idle for a while.
Some types of firewall, and almost any router doing Network Address Translation (NAT, also known as IP masquerading), will forget about a connection through them if the connection does nothing for too long. This will cause the connection to be rudely cut off when contact is resumed.
You can try to combat this by telling PuTTY to send keepalives: packets of data which have no effect on the actual session, but which reassure the router or firewall that the network connection is still active and worth remembering about.
Keepalives don't solve everything, unfortunately; although they cause greater robustness against this sort of router, they can also cause a loss of robustness against network dropouts. See section 4.13.1 in the documentation for more discussion of this.
7.11. Соединения PuTTY прерываются по тайм-ауту слишком быстро, даже при кратковременных потерях связи.
Это проблема Windows, а не PuTTY. Значение timeout не может быть установлено для отдельного приложения или сессии. Чтобы увеличить TCP timeout, необходимо внести изменения в системный реестр Windows.
В Windows 95/98/ME ключ реестра для изменения расположен по адресу:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services \VxD\MSTCP\MaxDataRetries
(В Win95 он должен иметь тип DWORD, а в Win98/ME — тип String. Смотрите MS Knowledge Base статью 158474 для получения дополнительной информации.)
В Windows NT/2000/XP ключ реестра для изменения расположен по адресу:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \Tcpip\Parameters\TcpMaxDataRetransmissions
(И он должен иметь тип DWORD. Смотрите MS Knowledge Base статьи 120642 и 314053 для получения дополнительной информации.)
Установите значение ключа в 10, — это заставит Windows дольше сохранять подключения.
7.12. Когда я читаю бинарный файл командой cat, получаю «PuTTYPuTTYPuTTY» в командную строку.
Не делайте так, это предсказуемое поведение.
Когда PuTTY получает символ Control-E от удалённого сервера, он интерпретирует этот символ как запрос самоидентификации, и таким образом посылает серверу строку «PuTTY», как будто эта строка была введена с клавиатуры. Control-E должен быть отправлен только программами, готовыми работать с ответом. Вывод двоичного файла прямо в терминал, вероятно, выведет много символов Control-E, и тем самым вызовет такое поведение.
Для смягчения эффекта, можете сконфигурировать строку ответа, изменить её на пустую (см. раздел 4.3.7 документации PuTTY). Но это не лучшее решение, т.к. в этом случае вывод двоичных файлов в окно терминала может вызвать иные неприятные последствия.
7.13. Когда я читаю бинарный файл командой cat, заголовок окна меняется на какую-то ерунду.
Не делайте так, это предсказуемое поведение.
У PuTTY должна быть возможность корректировать заголовок окна по команде сервера. Обычно, управляющая последовательность, которая делает это, должна быть отправлена только преднамеренно. Но при выводе двоичного файла в окно терминала, сервер рискует отправить ту же самую управляющую последовательность совершенно случайно, и тем самым вызывать неожиданное изменение заголовка окна.
7.14. Клавиатура перестаёт работать, когда PuTTY отображает поле ввода пароля.
Нет, не перестаёт. Просто PuTTY не отображает символы, которые вы печатаете, чтобы кто-то, смотрящий на ваш экран не смог подсмотреть пароль.
В отличие от входа в систему Windows, PuTTY не отображает пароль даже под звёздочками. Это делается для того, чтобы кто-то смотрящий на ваш экран, не смог даже предположить, какой длины ваш пароль, что уже являлось бы ценной информацией.
7.15. Одна или более функциональных клавиш не делают то, что я ожидал в серверном приложении.
Если вы уже испробовали все релевантные опции в PuTTY Keyboard panel, попробуйте послать письмо команде PuTTY и спросить нас, в чём дело.
Для выявления проблемы, не достаточно нам сказать какое приложение, какая ОС на сервере, и какая клавиша не работает. Нам необходимо иметь копию системы и каждого приложения, на которое вы жалуетесь.
PuTTY отвечает на нажатия функциональных клавиш, отправляя на сервер последовательности управляющих символов. Если клавиша не делает того, что вы ожидаете, вероятно, символьная последовательность, которую ваше приложение ожидает получить, отлично от того, что отправляет PuTTY. Поэтому, что мы действительно должны знать — то, какую последовательность приложение ожидает.
Самый простой способ состоит в том, чтобы найти некую другую среду терминала, в которой нужная функциональная клавиша работает. В системе Unix напечатайте команду cat, а затем нажмите функциональную клавишу. Вероятно, это создаст вывод формы ^[[11~. То же самое повторите в PuTTY, узнайте, какую последовательность создаёт клавиша в этом случае. Затем можете отправить письмо команде PuTTY и сказать нам, «я хотел, чтобы клавиша F1 отправила ^[[11~, но вместо этого он отправляет ^[OP, это можно исправить?», или что-то подобное.
7.16. После того, как мой SSH сервер был модернизирован до OpenSSH 3.1p1/3.4p1, больше не получается соединиться с ним используя PuTTY.
Проблема возникает, если OpenSSH был собран с неправильной версией OpenSSL. Быстрое решение — это настройка PuTTY на использование протокола SSH-2 с шифром Blowfish.
Для получения дополнительной информации и патчем OpenSSH, смотрите bug 138 в OpenSSH BTS (http://bugzilla.mindrot.org/show_bug.cgi?id=138).
Это не проблема PuTTY. Если вы попытаетесь соединиться другим клиентом, у вас будут те же самые проблемы. (Хотя алгоритм шифрования по умолчанию в PuTTY отличается от многих других клиентов).
OpenSSH 3.1p1: проблемные конфигурации:
- SSH-2 с шифром AES (PuTTY говорит, что «Утверждение терпело неудачу! Выражение: (len & 15) == 0» в
sshaes.c, или «недостаточно памяти», или сбои) - SSH-2 с шифром 3DES (PuTTY говорит «Incorrect MAC received on packet»)
- SSH-1 с шифром Blowfish (PuTTY говорит «Incorrect CRC received on packet»)
- SSH-1 с шифром 3DES
OpenSSH 3.4p1: остаётся проблема только с SSH-1 и Blowfish. Пересоберите свой сервер, с использованием патча 138, или используйте другой шифр (например, 3DES).
Другие версии OpenSSH: иногда мы получаем отчёты с теми же самыми признаками, но что в этом случае являлось причиной, выяснить не удавалось.
7.17. Почему PuTTYgen может загрузить ключ, а PuTTY нет? Я получаю ошибку «Couldn't load private key from …»
Вероятно, вы генерировали ключ SSH-2, но пытаетесь использовать его при подключении к SSH-1. У ключей SSH-1 и SSH-2 различные форматы, и поэтому PuTTY сообщает о неправильном формате ключа.
Чтобы, используя SSH-2 подключиться к серверу, который поддерживает обе версии протокола, вы должны изменить конфигурацию (см. вопрос 2.1).
7.18. Когда я соединяюсь с системой Red Hat Linux 8.0, некоторые символы не отображаются.
С выпуском Red Hat 8.0, UTF-8 стал набором символов по умолчанию. Эмуляторам терминала, например PuTTY, нет никакой возможности узнать об этом. Соответствующая escape-последовательность для переключения в режим UTF-8 не посылается.
Для корректной работы с Red Hat 8, включите в настройках сессии трансляцию UTF-8 (см. раздел 4.10.1 документации PuTTY).
Если вы хотите изменить набор символов, используемый сервером, пропишите его в /etc/sysconfig/i18n, но такой необходимости возникнуть не должно.
7.19. С тех пор, как я обновил PuTTY до версии 0.54, scrollback прекратил работать, когда я выполняю команду screen.
PuTTY's terminal emulator has always had the policy that when the «alternate screen» is in use, nothing is added to the scrollback. This is because the usual sorts of programs which use the alternate screen are things like text editors, which tend to scroll back and forth in the same document a lot; so (a) they would fill up the scrollback with a large amount of unhelpfully disordered text, and (b) they contain their own method for the user to scroll back to the bit they were interested in. We have generally found this policy to do the Right Thing in almost all situations.
Unfortunately, screen is one exception: it uses the alternate screen, but it's still usually helpful to have PuTTY's scrollback continue working. The simplest solution is to go to the Features control panel and tick «Disable switching to alternate terminal screen». (See section 4.6.4 for more details.) Alternatively, you can tell screen itself not to use the alternate screen: the screen FAQ suggests adding the line «termcapinfo xterm ti@:te@» to your .screenrc file.
The reason why this only started to be a problem in 0.54 is because screen typically uses an unusual control sequence to switch to the alternate screen, and previous versions of PuTTY did not support this sequence.
7.20. После обновления Windows XP до Service Pack 2, не получается использовать локальные адреса наподобие 127.0.0.2.
Some people who ask PuTTY to listen on localhost addresses other than 127.0.0.1 to forward services such as SMB and Windows Terminal Services have found that doing so no longer works since they upgraded to WinXP SP2.
This is apparently an issue with SP2 that is acknowledged by Microsoft in MS Knowledge Base article 884020. The article links to a fix you can download.
(However, we've been told that SP2 also fixes the bug that means you need to use non-127.0.0.1 addresses to forward Terminal Services in the first place.)
7.21. Команды PSFTP, кажется, пропускают разделители директорий (слеши /).
Some people have reported the following incorrect behaviour with PSFTP:
psftp> pwd Remote directory is /dir1/dir2 psftp> get filename.ext /dir1/dir2filename.ext: no such file or directory
This is not a bug in PSFTP. There is a known bug in some versions of portable OpenSSH (bug 697) that causes these symptoms; it appears to have been introduced around 3.7.x. It manifests only on certain platforms (AIX is what has been reported to us).
There is a patch for OpenSSH attached to that bug; it's also fixed in recent versions of portable OpenSSH (from around 3.8).
7.22. Хотите услышать о «Software caused connection abort»?
In the documentation for PuTTY 0.53 and 0.53b, we mentioned that we'd like to hear about any occurrences of this error. Since the release of PuTTY 0.54, however, we've been convinced that this error doesn't indicate that PuTTY's doing anything wrong, and we don't need to hear about further occurrences. See section 10.15 for our current documentation of this error.
7.23. Моя SSH-2 сессия очень часто блокируется на несколько секунд.
Recent versions of PuTTY automatically initiate repeat key exchange once per hour, to improve session security. If your client or server machine is slow, you may experience this as a delay of anything up to thirty seconds or so.
These delays are inconvenient, but they are there for your protection. If they really cause you a problem, you can choose to turn off periodic rekeying using the «Kex» configuration panel (see section 4.19), but be aware that you will be sacrificing security for this. (Falling back to SSH-1 would also remove the delays, but would lose a lot more security still. We do not recommend it.)
7.24. Не могу запустить PuTTY. Windows говорит, что «the application configuration is incorrect».
This is caused by a bug in certain versions of Windows XP which is triggered by PuTTY 0.58. This was fixed in 0.59.
8. Вопросы безопасности
8.1. Безопасно ли использовать PuTTY на публичном компьютере?
It depends on whether you trust that PC. If you don't trust the public PC, don't use PuTTY on it, and don't use any other software you plan to type passwords into either. It might be watching your keystrokes, or it might tamper with the PuTTY binary you download. There is no program safe enough that you can run it on an actively malicious PC and get away with typing passwords into it.
If you do trust the PC, then it's probably OK to use PuTTY on it (but if you don't trust the network, then the PuTTY download might be tampered with, so it would be better to carry PuTTY with you on a floppy).
8.2. Какие следы PuTTY оставляет в системе? Как можно это почистить?
PuTTY will leave some Registry entries, and a random seed file, on the PC (see question 5.2). If you are using PuTTY on a public PC, or somebody else's PC, you might want to clean these up when you leave. You can do that automatically, by running the command putty -cleanup. (Note that this only removes settings for the currently logged-in user on multi-user systems.)
If PuTTY was installed from the installer package, it will also appear in «Add/Remove Programs». Older versions of the uninstaller do not remove the above-mentioned registry entries and file.
8.3. Каким образом PuTTY теперь поддерживает DSA, насколько он небезопасен?
DSA has a major weakness if badly implemented: it relies on a random number generator to far too great an extent. If the random number generator produces a number an attacker can predict, the DSA private key is exposed — meaning that the attacker can log in as you on all systems that accept that key.
The PuTTY policy changed because the developers were informed of ways to implement DSA which do not suffer nearly as badly from this weakness, and indeed which don't need to rely on random numbers at all. For this reason we now believe PuTTY's DSA implementation is probably OK. However, if you have the choice, we still recommend you use RSA instead.
8.4. Не мог бы Pageant использовать VirtualLock() для запрета записи приватных ключей на диск?
Unfortunately not. The VirtualLock() function in the Windows API doesn't do a proper job: it may prevent small pieces of a process's memory from being paged to disk while the process is running, but it doesn't stop the process's memory as a whole from being swapped completely out to disk when the process is long-term inactive. And Pageant spends most of its time inactive.
9. Административные вопросы
9.1. Я такой добрый, хочу зарегистрировать вам домен покрасивше, хотите?
No, thank you. Even if you can find one (most of them seem to have been registered already, by people who didn't ask whether we actually wanted it before they applied), we're happy with the PuTTY web site being exactly where it is. It's not hard to find (just type «putty» into google.com and we're the first link returned), and we don't believe the administrative hassle of moving the site would be worth the benefit.
In addition, if we did want a custom domain name, we would want to run it ourselves, so we knew for certain that it would continue to point where we wanted it, and wouldn't suddenly change or do strange things. Having it registered for us by a third party who we don't even know is not the best way to achieve this.
9.2. А как на счёт бесплатного хостинга?
We already have some, thanks.
9.3. Обменяемся ссылками?
Only if the content of your web page is of definite direct interest to PuTTY users. If your content is unrelated, or only tangentially related, to PuTTY, then the link would simply be advertising for you.
One very nice effect of the Google ranking mechanism is that by and large, the most popular web sites get the highest rankings. This means that when an ordinary person does a search, the top item in the search is very likely to be a high-quality site or the site they actually wanted, rather than the site which paid the most money for its ranking.
The PuTTY web site is held in high esteem by Google, for precisely this reason: lots of people have linked to it simply because they like PuTTY, without us ever having to ask anyone to link to us. We feel that it would be an abuse of this esteem to use it to boost the ranking of random advertisers' web sites. If you want your web site to have a high Google ranking, we'd prefer that you achieve this the way we did — by being good enough at what you do that people will link to you simply because they like you.
In particular, we aren't interested in trading links for money (see above), and we certainly aren't interested in trading links for other links (since we have no advertising on our web site, our Google ranking is not even directly worth anything to us). If we don't want to link to you for free, then we probably won't want to link to you at all.
If you have software based on PuTTY, or specifically designed to interoperate with PuTTY, or in some other way of genuine interest to PuTTY users, then we will probably be happy to add a link to you on our Links page. And if you're running a particularly valuable mirror of the PuTTY web site, we might be interested in linking to you from our Mirrors page.
9.4. Почему вы не перенесёте проект PuTTY на SourceForge?
Partly, because we don't want to move the web site location (see question 9.1).
Also, security reasons. PuTTY is a security product, and as such it is particularly important to guard the code and the web site against unauthorised modifications which might introduce subtle security flaws. Therefore, we prefer that the Subversion repository, web site and FTP site remain where they are, under the direct control of system administrators we know and trust personally, rather than being run by a large organisation full of people we've never met and which is known to have had breakins in the past.
No offence to SourceForge; I think they do a wonderful job. But they're not ideal for everyone, and in particular they're not ideal for us.
9.5. Почему я не могу подписаться на почтовую рассылку о багах butty-bugs?
Because you're not a member of the PuTTY core development team. The putty-bugs mailing list is not a general newsgroup-like discussion forum; it's a contact address for the core developers, and an internal mailing list for us to discuss things among ourselves. If we opened it up for everybody to subscribe to, it would turn into something more like a newsgroup and we would be completely overwhelmed by the volume of traffic. It's hard enough to keep up with the list as it is.
9.6. Если putty-bugs это не general-subscription, тогда что же это?
There isn't one, that we know of.
If someone else wants to set up a mailing list or other forum for PuTTY users to help each other with common problems, that would be fine with us, though the PuTTY team would almost certainly not have the time to read it. It's probably better to use one of the established newsgroups for this purpose.
9.7. Денег куры не клюют, хочу поделиться с командой PuTTY!
Please, please don't feel you have to. PuTTY is completely free software, and not shareware. We think it's very important that everybody who wants to use PuTTY should be able to, whether they have any money or not; so the last thing we would want is for a PuTTY user to feel guilty because they haven't paid us any money. If you want to keep your money, please do keep it. We wouldn't dream of asking for any.
Having said all that, if you still really want to give us money, we won't argue :-) The easiest way for us to accept donations is if you send money to <anakin@pobox.com> using PayPal. If you don't like PayPal, talk to us; we can probably arrange some alternative means.
Small donations (tens of dollars or tens of euros) will probably be spent on beer or curry, which helps motivate our volunteer team to continue doing this for the world. Larger donations will be spent on something that actually helps development, if we can find anything (perhaps new hardware, or a copy of Windows XP), but if we can't find anything then we'll just distribute the money among the developers. If you want to be sure your donation is going towards something worthwhile, ask us first. If you don't like these terms, feel perfectly free not to donate. We don't mind.
9.8. Имею ли я право записывать PuTTY на CD, распространять, и т.п.?
Yes. For most things, you need not bother asking us explicitly for permission; our licence already grants you permission.
9.9. Не могли бы вы подписать эту форму, предоставляющую нам разрешение использовать/распространить PuTTY?
No!
A vendor of physical security products (e.g. locks) might plausibly be willing to accept financial liability for a product that failed to perform as advertised and resulted in damage (e.g. valuables being stolen). The reason they can afford to do this is because they sell a lot of units, and only a small proportion of them will fail; so they can meet their financial liability out of the income from all the rest of their sales, and still have enough left over to make a profit. Financial liability is intrinsically linked to selling your product for money.
There are two reasons why PuTTY is not analogous to a physical lock in this context. One is that software products don't exhibit random variation: if PuTTY has a security hole (which does happen, although we do our utmost to prevent it and to respond quickly when it does), every copy of PuTTY will have the same hole, so it's likely to affect all the users at the same time. So even if our users were all paying us to use PuTTY, we wouldn't be able to simultaneously pay every affected user compensation in excess of the amount they had paid us in the first place. It just wouldn't work.
The second, much more important, reason is that PuTTY users don't pay us. The PuTTY team does not have an income; it's a volunteer effort composed of people spending their spare time to try to write useful software. We aren't even a company or any kind of legally recognised organisation. We're just a bunch of people who happen to do some stuff in our spare time.
Therefore, to ask us to assume financial liability is to ask us to assume a risk of having to pay it out of our own personal pockets: out of the same budget from which we buy food and clothes and pay our rent. That's more than we're willing to give. We're already giving a lot of our spare time to developing software for free; if we had to pay our own money to do it as well, we'd start to wonder why we were bothering.
Free software fundamentally does not work on the basis of financial guarantees. Your guarantee of the software functioning correctly is simply that you have the source code and can check it before you use it. If you want to be sure there aren't any security holes, do a security audit of the PuTTY code, or hire a security engineer if you don't have the necessary skills yourself: instead of trying to ensure you can get compensation in the event of a disaster, try to ensure there isn't a disaster in the first place.
If you really want financial security, see if you can find a security engineer who will take financial responsibility for the correctness of their review. (This might be less likely to suffer from the everything-failing-at-once problem mentioned above, because such an engineer would probably be reviewing a lot of different products which would tend to fail independently.) Failing that, see if you can persuade an insurance company to insure you against security incidents, and if the insurer demands it as a condition then get our code reviewed by a security engineer they're happy with.
9.10. Не могли бы вы подписать эту форму, предоставляющую нам разрешение на использование/распространение PuTTY?
If your form contains any clause along the lines of «the undersigned represents and warrants», we're not going to sign it. This is particularly true if it asks us to warrant that PuTTY is secure; see question 9.9. for more discussion of this. But it doesn't really matter what we're supposed to be warranting: even if it's something we already believe is true, such as that we don't infringe any third-party copyright, we will not sign a document accepting any legal or financial liability. This is simply because the PuTTY development project has no income out of which to satisfy that liability, or pay legal costs, should it become necessary. We cannot afford to be sued. We are assuring you that we have done our best; if that isn't good enough for you, tough.
The existing PuTTY licence document already gives you permission to use or distribute PuTTY in pretty much any way which does not involve pretending you wrote it or suing us if it goes wrong. We think that really ought to be enough for anybody.
See also question 9.12. for another reason why we don't want to do this sort of thing.
9.11. Не могли бы вы написать нам официальное уведомление о разрешении использовать PuTTY?
We could, in principle, but it isn't clear what use it would be. If you think there's a serious chance of one of the PuTTY copyright holders suing you (which we don't!), you would presumably want a signed notice from all of them; and we couldn't provide that even if we wanted to, because many of the copyright holders are people who contributed some code in the past and with whom we subsequently lost contact. Therefore the best we would be able to do even in theory would be to have the core development team sign the document, which wouldn't guarantee you that some other copyright holder might not sue.
See also question 9.12. for another reason why we don't want to do this sort of thing.
9.12. Не могли бы вы подписать что-нибудь для нас?
Not unless there's an incredibly good reason.
We are generally unwilling to set a precedent that involves us having to enter into individual agreements with PuTTY users. We estimate that we have literally millions of users, and we absolutely would not have time to go round signing specific agreements with every one of them. So if you want us to sign something specific for you, you might usefully stop to consider whether there's anything special that distinguishes you from 999,999 other users, and therefore any reason we should be willing to sign something for you without it setting such a precedent.
If your company policy requires you to have an individual agreement with the supplier of any software you use, then your company policy is simply not well suited to using popular free software, and we urge you to consider this as a flaw in your policy.
9.13. Если вы ничего не будете подписывать, можете ли дать нам своего рода гарантию, что в будущем вы не закроете исходные коды?
Yes and no.
If what you want is an assurance that some current version of PuTTY which you've already downloaded will remain free, then you already have that assurance: it's called the PuTTY Licence. It grants you permission to use, distribute and copy the software to which it applies; once we've granted that permission (which we have), we can't just revoke it.
On the other hand, if you want an assurance that future versions of PuTTY won't be closed-source, that's more difficult. We could in principle sign a document stating that we would never release a closed-source PuTTY, but that wouldn't assure you that we would keep releasing open-source PuTTYs: we would still have the option of ceasing to develop PuTTY at all, which would surely be even worse for you than making it closed-source! (And we almost certainly wouldn't want to sign a document guaranteeing that we would actually continue to do development work on PuTTY; we certainly wouldn't sign it for free. Documents like that are called contracts of employment, and are generally not signed except in return for a sizeable salary.)
If we were to stop developing PuTTY, or to decide to make all future releases closed-source, then you would still be free to copy the last open release in accordance with the current licence, and in particular you could start your own fork of the project from that release. If this happened, I confidently predict that somebody would do that, and that some kind of a free PuTTY would continue to be developed. There's already precedent for that sort of thing happening in free software. We can't guarantee that somebody other than you would do it, of course; you might have to do it yourself. But we can assure you that there would be nothing preventing anyone from continuing free development if we stopped.
(Finally, we can also confidently predict that if we made PuTTY closed-source and someone made an open-source fork, most people would switch to the latter. Therefore, it would be pretty stupid of us to try it.)
9.14. Не могли бы вы предоставить нам экспортную информацию об управлении / аттестация FIPS для PuTTY?
Some people have asked us for an Export Control Classification Number (ECCN) for PuTTY. We don't know whether we have one, and as a team of free software developers based in the UK we don't have the time, money, or effort to deal with US bureaucracy to investigate any further. We believe that PuTTY falls under 5D002 on the US Commerce Control List, but that shouldn't be taken as definitive. If you need to know more you should seek professional legal advice. The same applies to any other country's legal requirements and restrictions.
Similarly, some people have asked us for FIPS certification of the PuTTY tools. Unless someone else is prepared to do the necessary work and pay any costs, we can't provide this.
10. Разные вопросы
10.1. PuTTY является портом OpenSSH? Или основан на OpenSSH/OpenSSL?
No, it isn't. PuTTY is almost completely composed of code written from scratch for PuTTY. The only code we share with OpenSSH is the detector for SSH-1 CRC compensation attacks, written by CORE SDI S.A; we share no code at all with OpenSSL.
10.2. Где я могу купить глупую замазку?
You're looking at the wrong web site; the only PuTTY we know about here is the name of a computer program.
If you want the kind of putty you can buy as an executive toy, the PuTTY team can personally recommend Thinking Putty, which you can buy from Crazy Aaron's Putty World, at www.puttyworld.com.
10.3. Что означает слово «PuTTY»?
It's the name of a popular SSH and Telnet client. Any other meaning is in the eye of the beholder. It's been rumoured that «PuTTY» is the antonym of «getty», or that it's the stuff that makes your Windows useful, or that it's a kind of plutonium Teletype. We couldn't possibly comment on such allegations.
10.4. Как произносится «PuTTY»?
Exactly like the English word «putty», which we pronounce /ˈpʌti/.