У меня есть любопытная проблема - очень похожая на вопрос здесь, но ни один из ответов не помог мне.
Эта проблема
Сбой аутентификации с открытым ключом с первичного на узел реплики. Я использовал ssh-keygen для создания нового ключа под пользователем "postgres" на каждом компьютере, а затем использовал ssh-copy-id для копирования открытого ключа каждого компьютера на другой.
Под учетной записью postgres это работает только от реплики до первичной, а не наоборот. Кроме того, этот процесс работает в обоих направлениях для всех остальных пользователей на машинах.
Файлы и журналы:
Сначала журнал ssh (слегка усеченный):
ssh -vvv 192.168.1.104
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug2: resolving "192.168.1.104" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 192.168.1.104 [192.168.1.104] port 22.
debug1: Connection established.
debug1: identity file /var/lib/pgsql/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4
debug1: match: OpenSSH_7.4 pat OpenSSH* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to 192.168.1.104:22 as 'postgres'
debug3: hostkeys_foreach: reading file "/var/lib/pgsql/.ssh/known_hosts"
debug3: record_hostkey: found key type ECDSA in file /var/lib/pgsql/.ssh/known_hosts:1
debug3: load_hostkeys: loaded 1 keys from 192.168.1.104
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: curve25519-sha256 need=64 dh_need=64
debug1: kex: curve25519-sha256 need=64 dh_need=64
debug3: send packet: type 30
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 31
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:D8LwBEs1BC7iSlmZOa3b58/gS6mRIIxfGHl6buMJA/c
debug3: hostkeys_foreach: reading file "/var/lib/pgsql/.ssh/known_hosts"
debug3: record_hostkey: found key type ECDSA in file /var/lib/pgsql/.ssh/known_hosts:1
debug3: load_hostkeys: loaded 1 keys from 192.168.1.104
debug1: Host '192.168.1.104' is known and matches the ECDSA host key.
debug1: Found key in /var/lib/pgsql/.ssh/known_hosts:1
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug2: key: /var/lib/pgsql/.ssh/id_rsa (0x556e0db5a510)
debug2: key: /var/lib/pgsql/.ssh/id_dsa ((nil))
debug2: key: /var/lib/pgsql/.ssh/id_ecdsa ((nil))
debug2: key: /var/lib/pgsql/.ssh/id_ed25519 ((nil))
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /var/lib/pgsql/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey
debug1: Trying private key: /var/lib/pgsql/.ssh/id_dsa
debug3: no such identity: /var/lib/pgsql/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /var/lib/pgsql/.ssh/id_ecdsa
debug3: no such identity: /var/lib/pgsql/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /var/lib/pgsql/.ssh/id_ed25519
debug3: no such identity: /var/lib/pgsql/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
Я абсолютно в тупик. Существуют ли другие причины, по которым аутентификация с открытым ключом может не работать? Какую неисправность я должен выполнить отсюда?
редактировать
Отключение SELinux устранило проблему, но оставляет мне ряд вопросов - некоторые из которых являются вспомогательными и, возможно, выходят за рамки этого, но, тем не менее, я думаю, что они могут быть полезны для будущих посетителей:
- Как мне решить эту проблему, не отключая SELinux? Мне не удалось использовать Audit2allow. Может ли это быть выполнено без каких-либо сторонних инструментов (т. Е. Только того, что доступно на минимальном ISO CentOS 7)?
- Почему политики SELinux могут отличаться между двумя виртуальными машинами? Они оба были клонированы из одного шаблона.
- Почему SELinux влияет только на одну учетную запись пользователя, но не на другую?