2017-03-14 28 views
0

我在CentOS 6.8上爲SSH服務器設置公鑰認證時遇到問題。奇怪的是,當我用postgres用戶登錄時,它很順利,但是當我通過安裝barman自動創建的'barman'用戶登錄時,它總是需要密碼。SSH公鑰認證不適用於特殊用戶

'postgres'用戶的主目錄和酒保用戶的主目錄位於同一個文件夾中。我認爲這個問題與sshd配置無關,試圖設置酒保的主路徑,.ssh路徑和authorized_keys的權限與postgres完全相同。但它仍然不起作用。 這是我跑ssh localhost -vvv後得到:

OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013 
    debug1: Reading configuration data /etc/ssh/ssh_config 
    debug1: Applying options for * 
    debug2: ssh_connect: needpriv 0 
    debug1: Connecting to localhost [::1] port 22. 
    debug1: Connection established. 
    debug3: Not a RSA1 key file /var/lib/barman/.ssh/id_rsa. 
    debug2: key_type_from_name: unknown key type '-----BEGIN' 
    debug3: key_read: missing keytype 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug3: key_read: missing whitespace 
    debug2: key_type_from_name: unknown key type '-----END' 
    debug3: key_read: missing keytype 
    debug1: identity file /var/lib/barman/.ssh/id_rsa type 1 
    debug1: identity file /var/lib/barman/.ssh/id_rsa-cert type -1 
    debug1: Remote protocol version 2.0, remote software version     OpenSSH_5.3 
    debug1: match: OpenSSH_5.3 pat OpenSSH* 
    debug1: Enabling compatibility mode for protocol 2.0 
    debug1: Local version string SSH-2.0-OpenSSH_5.3 
    debug2: fd 3 setting O_NONBLOCK 
    debug1: SSH2_MSG_KEXINIT sent 
    debug3: Wrote 960 bytes for a total of 981 
    debug1: SSH2_MSG_KEXINIT received 
    debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-  sha1,diffie-hellman-group1-sha1 
    debug2: kex_parse_kexinit: [email protected],ssh-dss-  [email protected],[email protected],[email protected],ssh-rsa,ssh-dss 
    debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-  ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] 
    debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] 
    debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 
    debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 
    debug2: kex_parse_kexinit: none,[email protected],zlib 
    debug2: kex_parse_kexinit: none,[email protected],zlib 
    debug2: kex_parse_kexinit: 
    debug2: kex_parse_kexinit: 
    debug2: kex_parse_kexinit: first_kex_follows 0 
    debug2: kex_parse_kexinit: reserved 0 
    debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 
    debug2: kex_parse_kexinit: ssh-rsa,ssh-dss 
    debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] 
    debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] 
    debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-  sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 
    debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 
    debug2: kex_parse_kexinit: none,[email protected] 
    debug2: kex_parse_kexinit: none,[email protected] 
    debug2: kex_parse_kexinit: 
    debug2: kex_parse_kexinit: 
    debug2: kex_parse_kexinit: first_kex_follows 0 
    debug2: kex_parse_kexinit: reserved 0 
    debug2: mac_setup: found hmac-md5 
    debug1: kex: server->client aes128-ctr hmac-md5 none 
    debug2: mac_setup: found hmac-md5 
    debug1: kex: client->server aes128-ctr hmac-md5 none 
    debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent 
    debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP 
    debug3: Wrote 24 bytes for a total of 1005 
    debug2: dh_gen_key: priv key bits set: 139/256 
    debug2: bits set: 514/1024 
    debug1: SSH2_MSG_KEX_DH_GEX_INIT sent 
    debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY 
    debug3: Wrote 144 bytes for a total of 1149 
    debug3: check_host_in_hostfile: host localhost filename /var/lib/barman/.ssh/known_hosts 
    debug3: check_host_in_hostfile: host localhost filename /var/lib/barman/.ssh/known_hosts 
    debug3: check_host_in_hostfile: match line 1 
    debug1: Host 'localhost' is known and matches the RSA host key. 
    debug1: Found key in /var/lib/barman/.ssh/known_hosts:1 
    debug2: bits set: 523/1024 
    debug1: ssh_rsa_verify: signature correct 
    debug2: kex_derive_keys 
    debug2: set_newkeys: mode 1 
    debug1: SSH2_MSG_NEWKEYS sent 
    debug1: expecting SSH2_MSG_NEWKEYS 
    debug3: Wrote 16 bytes for a total of 1165 
    debug2: set_newkeys: mode 0 
    debug1: SSH2_MSG_NEWKEYS received 
    debug1: SSH2_MSG_SERVICE_REQUEST sent 
    debug3: Wrote 48 bytes for a total of 1213 
    debug2: service_accept: ssh-userauth 
    debug1: SSH2_MSG_SERVICE_ACCEPT received 
    debug2: key: /var/lib/barman/.ssh/id_rsa (0x7f6ef1fcc740) 
    debug3: Wrote 64 bytes for a total of 1277 
    debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password 
    debug3: start over, passed a different list publickey,gssapi-keyex,gssapi-with-mic,password 
    debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password 
    debug3: authmethod_lookup gssapi-keyex 
    debug3: remaining preferred: gssapi-with-mic,publickey,keyboard-interactive,password 
    debug3: authmethod_is_enabled gssapi-keyex 
    debug1: Next authentication method: gssapi-keyex 
    debug1: No valid Key exchange context 
    debug2: we did not send a packet, disable method 
    debug3: authmethod_lookup gssapi-with-mic 
    debug3: remaining preferred: publickey,keyboard-interactive,password 
    debug3: authmethod_is_enabled gssapi-with-mic 
    debug1: Next authentication method: gssapi-with-mic 
    debug3: Trying to reverse map address ::1. 
    debug1: Unspecified GSS failure. Minor code may provide more information 
    Credentials cache file '/tmp/krb5cc_498' not found 

    debug1: Unspecified GSS failure. Minor code may provide more information 
    Credentials cache file '/tmp/krb5cc_498' not found 

    debug1: Unspecified GSS failure. Minor code may provide more information 


    debug1: Unspecified GSS failure. Minor code may provide more information 
    Credentials cache file '/tmp/krb5cc_498' not found 

    debug2: we did not send a packet, disable method 
    debug3: authmethod_lookup publickey 
    debug3: remaining preferred: keyboard-interactive,password 
    debug3: authmethod_is_enabled publickey 
    debug1: Next authentication method: publickey 
    debug1: Offering public key: /var/lib/barman/.ssh/id_rsa 
    debug3: send_pubkey_test 
    debug2: we sent a publickey packet, wait for reply 
    debug3: Wrote 368 bytes for a total of 1645 
    debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password 
    debug2: we did not send a packet, disable method 
    debug3: authmethod_lookup password 
    debug3: remaining preferred: ,password 
    debug3: authmethod_is_enabled password 
    debug1: Next authentication method: password 
    [email protected]'s password: 
+0

可能與嚴格模式有關。如果barman上面的文件夾是group/world可訪問的,sshd可能不喜歡它。 – Wukerplank

+0

Barman和postgres位於同一個文件夾中,但postgres不存在這樣的問題。 – Veetase

回答

2

authorized_keys文件是用戶的主目錄中有錯誤的情況下。在這個例子中,文件的上下文是「unconfined_u:object_r:httpd_sys_content_t:s0」。正在運行的上下文sshd無法訪問此上下文,導致SELinux拒絕訪問該文件。無法訪問該文件時,密鑰認證失敗。 運行以下命令重置它:

chcon -R unconfined_u:object_r:user_home_t:s0 /path/to/users/homedirectory/.ssh/