OpenSSH. Часть 1. Введение.
вторник, июня 26, 2007
Часть 1. ВВЕДЕНИЕ.
Удаленный доступ по праву считается одной из самых замечательных возможностей Linux. Существует много способов организации удаленного доступа. В незащищенных сетях не следует полагаться на старые механизмы telnet или X, поскольку информация учетной записи и данные пересылаются в виде простого текста. Оптимальным выбором станет OpenSSH (Secure SHell) — семейство из нескольких программ защищенной пересылки данных: scp (Secure CoPy), ssh (Secure SHell) и sftp (Secure File Transfer Protocol).
Программа ssh является основным инструментом удаленного администрирования; с ее помощью можно подключиться к удаленному компьютеру и работать с ним так, словно вы физически работаете за этим компьютером. Информация учетных записей и данные шифруются. Кроме того, ssh обнаруживает модификацию пакетов во время пересылки. Злоумышленники могут сколько угодно перехватывать пакеты и вносить в них изменения — они этим ничего не добьются. В действительности SSH не является командным процессором (shell); это протокол. Существует две несовместимые версии этого протокола, SSH-1 и SSH-2. OpenSSH поддерживает обе версии.
OpenSSH проводит аутентификацию с использованием пар из открытого и закрытого ключа. Закрытые ключи тщательно охраняются и никогда, ни при каких условиях не передаются другим пользователям. Всегда используйте сильные пароли для шифрования и защиты закрытых ключей. По-настоящему сильный пароль состоит из нескольких слов и содержит буквы и цифры типа «t4is is mai 733ts3kkrit p4ssphr4se». Как обычно, следует выдерживать баланс между надежностью и удобством, потому что пароль придется часто вводить.
Открытые ключи передаются удаленным клиентам и серверам SSH. Например, при использовании аутентификации с ключом хоста открытый ключ сервера хранится на клиентских компьютерах, которым разрешен доступ к серверу. Все сеансы SSH начинаются с аутентификации. После того как открытый ключ удаленного хоста будет скопирован в локальный каталог ~/.ssh, вы сможете подключиться к удаленному хосту в качестве любого пользователя, используя данные его учетной записи.
Если вы хотите, чтобы при аутентификации использовались ключи SSH (вместо учетных данных пользователя), сгенерируйте собственную пару из открытого и закрытого ключа и скопируйте открытый ключ на все удаленные хосты, к которым вы собираетесь подключаться. Чтобы схема заработала, достаточно выполнить пару дополнительных шагов, описанных в этой главе. Такой вид аутентификации называется аутентификацией с открытым ключом.
Если вы собираетесь подключаться к многим удаленным компьютерам, управление входными данными начинает создавать проблемы. Использование одного и того же открытого ключа и пароля создает потенциальную угрозу для безопасности системы, но и запомнить слишком много имен и паролей тоже нелегко. OpenSSH решает эту проблему за счет использования аутентификации с открытым ключом, программ ssh-agent и keychain, позволяющих проводить защищенную аутентификацию без пароля.
Удаленный доступ по праву считается одной из самых замечательных возможностей Linux. Существует много способов организации удаленного доступа. В незащищенных сетях не следует полагаться на старые механизмы telnet или X, поскольку информация учетной записи и данные пересылаются в виде простого текста. Оптимальным выбором станет OpenSSH (Secure SHell) — семейство из нескольких программ защищенной пересылки данных: scp (Secure CoPy), ssh (Secure SHell) и sftp (Secure File Transfer Protocol).
Программа ssh является основным инструментом удаленного администрирования; с ее помощью можно подключиться к удаленному компьютеру и работать с ним так, словно вы физически работаете за этим компьютером. Информация учетных записей и данные шифруются. Кроме того, ssh обнаруживает модификацию пакетов во время пересылки. Злоумышленники могут сколько угодно перехватывать пакеты и вносить в них изменения — они этим ничего не добьются. В действительности SSH не является командным процессором (shell); это протокол. Существует две несовместимые версии этого протокола, SSH-1 и SSH-2. OpenSSH поддерживает обе версии.
ПРИМЕЧАНИЕРаботать с SSH несложно. Если ранее вам доводилось пользоваться rsh, rlogin или rep, синтаксис командной строки почти не изменился. На всех компьютерах, к которым должен предоставляться удаленный доступ, должен работать демон OpenSSH sshd, а на всех удаленных компьютерах потребуются учетные записи. Входить можно под любой учетной записью; главное, чтобы вы знали имя и пароль.
Терминология SSH может сбить с толку непосвященных. SSH (прописными буквами) — название протокола, тогда как ssh, scp и т. д. (строчными буквами) — программы, использующие SSH. OpenSSH — реализация SSH.
OpenSSH проводит аутентификацию с использованием пар из открытого и закрытого ключа. Закрытые ключи тщательно охраняются и никогда, ни при каких условиях не передаются другим пользователям. Всегда используйте сильные пароли для шифрования и защиты закрытых ключей. По-настоящему сильный пароль состоит из нескольких слов и содержит буквы и цифры типа «t4is is mai 733ts3kkrit p4ssphr4se». Как обычно, следует выдерживать баланс между надежностью и удобством, потому что пароль придется часто вводить.
Открытые ключи передаются удаленным клиентам и серверам SSH. Например, при использовании аутентификации с ключом хоста открытый ключ сервера хранится на клиентских компьютерах, которым разрешен доступ к серверу. Все сеансы SSH начинаются с аутентификации. После того как открытый ключ удаленного хоста будет скопирован в локальный каталог ~/.ssh, вы сможете подключиться к удаленному хосту в качестве любого пользователя, используя данные его учетной записи.
Если вы хотите, чтобы при аутентификации использовались ключи SSH (вместо учетных данных пользователя), сгенерируйте собственную пару из открытого и закрытого ключа и скопируйте открытый ключ на все удаленные хосты, к которым вы собираетесь подключаться. Чтобы схема заработала, достаточно выполнить пару дополнительных шагов, описанных в этой главе. Такой вид аутентификации называется аутентификацией с открытым ключом.
Если вы собираетесь подключаться к многим удаленным компьютерам, управление входными данными начинает создавать проблемы. Использование одного и того же открытого ключа и пароля создает потенциальную угрозу для безопасности системы, но и запомнить слишком много имен и паролей тоже нелегко. OpenSSH решает эту проблему за счет использования аутентификации с открытым ключом, программ ssh-agent и keychain, позволяющих проводить защищенную аутентификацию без пароля.
Ярлыки: документация, Удаленный доступ, linux, SSH