Разработчик (и) | The OpenBSD Project |
---|---|
Repository | github.com / openssh / openssh-portable / |
Написано в | C |
Операционной системе | Unix, Unix-like, Microsoft Windows |
Тип | Команда |
Лицензия | BSD, ISC, общественное достояние |
Веб-сайт | www.openssh.com |
Secure Shell (SSH) - это протокол, обеспечивающий безопасный удаленный вход в компьютер в сети с использованием криптографии с открытым ключом. Клиентские программы SSH (такие как ssh
из OpenSSH ) обычно запускаются в течение сеанса удаленного входа в систему и настроены на поиск личного ключа пользователя в файле в домашнем каталоге пользователя. (например, .ssh / id_rsa
). Для дополнительной безопасности (например, от злоумышленника, который может прочитать любой файл в локальной файловой системе) обычно хранят закрытый ключ в зашифрованном виде, где ключ шифрования вычисляется из парольной фразы, которая пользователь запомнил. Поскольку ввод парольной фразы может быть утомительным, многие пользователи предпочли бы вводить ее только один раз за сеанс локального входа в систему. Наиболее безопасное место для хранения незашифрованного ключа - это программная память, а в Unix-подобных операционных системах память обычно связана с процессом процессом. Обычный клиентский процесс SSH нельзя использовать для хранения незашифрованного ключа, поскольку клиентские процессы SSH длятся только в течение сеанса удаленного входа в систему. Таким образом, пользователи запускают программу под названием ssh-agent, которая работает после локального сеанса входа в систему, хранит незашифрованные ключи в памяти и обменивается данными с SSH-клиентами, используя сокет домена Unix.
ssh-agent
создает socket, а затем проверяет соединения от ssh
. Каждый, кто может подключиться к этому сокету, также имеет доступ к ssh-agent
. Разрешения устанавливаются как в обычной системе Linux или Unix. Когда агент запускается, он создает новый каталог в / tmp
с ограниченными разрешениями. Сокет находится в этом каталоге.
Существует процедура, которая может предотвратить использование вредоносным ПО сокета ssh-agent
. Если параметр ssh-add -c
установлен, когда ключи импортируются в ssh-agent
, то агент запрашивает подтверждение от пользователя с помощью программы, указанной параметром SSH_ASKPASS
переменная среды, всякий раз, когда ssh
пытается подключиться.
В локальной системе важно, чтобы пользователь root был заслуживающим доверия, потому что пользователь root может, помимо прочего, просто читать файл ключа напрямую. В удаленной системе, если соединение ssh-agent
перенаправляется, также важно, чтобы пользователь root на другом конце был надежным, поскольку он может получить доступ к сокету агента на удаленном компьютере (но не к ключу, который остается локальным).
Существует множество различных программ, которые выполняют те же функции, что и OpenSSH ssh-agent, некоторые с очень разными пользовательскими интерфейсами. PuTTY, например, использует графический пользовательский интерфейс в своем связанном ssh-agent Pageant.
Существуют инструменты, предназначенные для обеспечения функциональности ключевого агента как для симметричных, так и для асимметричных ключей; они обычно предоставляют функции ssh-agent в качестве одного из интерфейсов своих приложений. Примеры включают связку ключей GNOME и KWallet.
. Некоторые монолитные клиенты SSH включают возможность запоминать парольные фразы SSH между сеансами. Примеры включают: SecureCRT.
В операционную систему macOS ssh-agent был интегрирован с Leopard версии 10.5 в 2007 году. Сторонние реализации ssh-agent с открытым исходным кодом были доступны ранее.
OpenSSH были включены в Windows 10 начиная с версии 1803. Клиент SSH и ключевой агент включены и доступны по умолчанию, а сервер SSH является необязательной функцией по запросу.
В Викиучебниках есть книга по тема: Руководство по командам Windows |