Назад | Перейти на главную страницу

проверить конфигурацию sshd

Как я могу проверить конфигурацию sshd?

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

AllowUsers user1 user2 
PasswordAuthentication no
PermitRootLogin no

Это единственный способ вручную проверить содержимое файла sshd_config, или я могу зондировать sshd Чтобы убедиться?

Есть расширенный тестовый режим, вызываемый с опцией командной строки. -T, который делает это. Например:

% sudo sshd -T | egrep -i 'allowusers|passwordauth|permitroot'
permitrootlogin yes
passwordauthentication yes

Опция существует в Portable OpenSSH с 2008 г., см. совершить e7140f2. Это было выпущено с 5.1p1, сделанным в июле 2008 г., см. примечания к выпуску 5.1, поэтому он существует практически во всех поддерживаемых сегодня установках сервера OpenSSH.

Хотя при этом не будут сброшены все определения вашего сервера, вы можете попробовать подключиться к серверу с подробным флагом отладки: ssh -v user@server. Это даст вам много информации, которая будет отражать параметры, включенные в конфигурации sshd.

Например, посмотрите на вывод этого соединения с -v переключатель (подписи ключей, домен и IP-адреса намеренно замаскированы):

OpenSSH_6.0p1, OpenSSL 0.9.8w 23 Apr 2012
debug1: Reading configuration data /home/claudio/.ssh/config
debug1: /home/claudio/.ssh/config line 13: Applying options for serv01
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to somedomain.com [185.113.29.221] port 22.
debug1: Connection established.
debug1: identity file /home/claudio/.ssh/id_dsa type 2
debug1: identity file /home/claudio/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9
debug1: match: OpenSSH_5.9 pat OpenSSH_5*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 3a:0d:b8:18:ca:67:4c:54:0f:c8:b2:1e:48:53:69:28
debug1: Host '[somedomain.com]:22' is known and matches the ECDSA host key.
debug1: Found key in /home/claudio/.ssh/known_hosts:7
Warning: Permanently added the ECDSA host key for IP address '[185.113.29.221]:22' to the list of known hosts.
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /home/claudio/.ssh/id_dsa
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: Authentication succeeded (publickey).
Authenticated to somedomain.com ([185.113.29.221]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.

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

Вы можете увеличить уровень вывода информации, указав больше букв "v", но тогда вы можете получить гораздо больше информации низкого уровня, чем вы, вероятно, захотите.

Конфигурация sshd обычно находится в следующем файле: /etc/ssh/sshd_config.

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

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

Проблема с просмотром файла / etc / ssh / sshd_config, как предлагают другие ответы, заключается в том, что он не обязательно содержит всю конфигурацию. Этот файл содержит значения любых переменных конфигурации, которые вы хотите установить для отмены значений по умолчанию, и при поставке содержит в качестве комментариев значения по умолчанию, встроенные в sshd.

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

Кроме того, вполне возможно запустить sshd с альтернативным файлом конфигурации с параметром -f, поэтому файл, хранящийся в / etc / ssh / sshd_config, может не отражать текущие настройки.

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