Xác thực khóa công khai SSH


3

Tôi đã gặp sự cố khi xác thực máy khách macbook air của mình bằng ssh để kết nối với máy chủ Raspberry Pi. Có bất cứ đề xuất nào về lý do tại sao điều này không hoạt động?


Những điều tôi đã thử:

  • Tạo khóa ssh và sao chép khóa chung vào ~/.ssh/authorized_keysthư mục của máy chủ
  • Đã bật chuyển tiếp cổng sang cổng 777 (sử dụng cổng đó cho SSH)
  • Thiết lập quyền trên máy chủ của tôi cho ~/.ssh~/.ssh/*thư mục
  • Đã bật RSAAuthentication và PubkeyAuthentication trong /etc/ssh/sshd_configtệp máy chủ của tôi

Nhật ký ở phía khách hàng:

>>> ssh -vvv -i ~/.ssh/id_rsa pi@raspberrypi.local
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to raspberrypi.local [192.168.0.13] port 777.
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could not load "/Users/addie/.ssh/id_rsa" as a RSA1 public key
debug1: identity file /Users/addie/.ssh/id_rsa type 1
debug1: identity file /Users/addie/.ssh/id_rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.0p1 Debian-4+deb7u2
debug1: match: OpenSSH_6.0p1 Debian-4+deb7u2 pat OpenSSH*
debug2: fd 3 setting O_NONBLOCK
debug3: put_host_port: [raspberrypi.local]:777
debug3: load_hostkeys: loading entries for host "[raspberrypi.local]:777" from file "/Users/addie/.ssh/known_hosts"
debug3: load_hostkeys: loaded 0 keys
debug1: SSH2_MSG_KEXINIT sent
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: ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
debug2: kex_parse_kexinit: none,zlib@openssh.com,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: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,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,ecdsa-sha2-nistp256
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,rijndael-cbc@lysator.liu.se
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,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit: none,zlib@openssh.com
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
debug2: dh_gen_key: priv key bits set: 125/256
debug2: bits set: 503/1024
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 32:b0:3a:60:39:3c:38:9b:35:33:b7:80:d6:06:37:a9
debug3: put_host_port: [192.168.0.13]:777
debug3: put_host_port: [raspberrypi.local]:777
debug3: load_hostkeys: loading entries for host "[raspberrypi.local]:777" from file "/Users/addie/.ssh/known_hosts"
debug3: load_hostkeys: loaded 0 keys
debug3: load_hostkeys: loading entries for host "[192.168.0.13]:777" from file "/Users/addie/.ssh/known_hosts"
debug3: load_hostkeys: loaded 0 keys
debug1: checking without port identifier
debug3: load_hostkeys: loading entries for host "raspberrypi.local" from file "/Users/addie/.ssh/known_hosts"
debug3: load_hostkeys: found key type RSA in file /Users/addie/.ssh/known_hosts:4
debug3: load_hostkeys: loaded 1 keys
debug3: load_hostkeys: loading entries for host "192.168.0.13" from file "/Users/addie/.ssh/known_hosts"
debug3: load_hostkeys: found key type RSA in file /Users/addie/.ssh/known_hosts:7
debug3: load_hostkeys: loaded 1 keys
debug1: Host 'raspberrypi.local' is known and matches the RSA host key.
debug1: Found key in /Users/addie/.ssh/known_hosts:4
debug1: found matching key w/out port
debug2: bits set: 505/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
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /Users/addie/.ssh/id_rsa (0x7fe36a415cd0), explicit
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred 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: /Users/addie/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).

Nhật ký ở phía máy chủ:

>>> cat /var/log/auth.log
sshd[4115]: User pi authorized keys /home/pi/.ssh/authorized_keys is not a regular file
sshd[4115]: Connection closed by 192.168.0.5

Một cái gì đó dường như là sai với tập tin ủy quyền. Bạn có thể chỉ cho chúng tôi kết quả của ls -l /home/pi/.ssh/authorized_keys
Thomas Weinbrenner

Đây là đầu ra. Tôi có hai khóa công khai trong đó, một từ mac của tôi và một từ iPhone của tôi: -rw------- 1 pi pi 743 Oct 11 05:42 id_rsa.pub -rw------- 1 pi pi 725 Oct 2 18:51 ios_id_rsa.pub
Addie

không, chạy lệnh được yêu cầu, để xem tệp trông như thế nào.
Jakuje

Câu trả lời:


7

Tôi nghĩ rằng, bạn đã hiểu nhầm cách sử dụng authorized_keys.

authorized_keyskhông một thư mục vào đó bạn đặt pubkey-tập tin của bạn.

authorized_keys là một tập tin thường xuyên bao gồm tất cả các pubkey của bạn.

Nếu bạn chỉ có một khóa, bạn có thể đổi tên tệp

mv id_rsa.pub authorized_keys

Nếu bạn có nhiều hơn một khóa, bạn có thể sử dụng mèo để ghép các khóa đó vào tệp.

cat id_rsa.pub ios_id_rsa.pub >> authorized_keys

Cảm ơn tôi đã thực hiện thay đổi này, nhưng tôi vẫn nhận được Permission denied (publickey).lỗi.
Addie

Điều gì đang /var/log/auth.lognói bây giờ?
Thomas Weinbrenner

Đây là lỗi mới:input_userauth_request: invalid user addie [preauth]
Addie

autorized_keys phải là -rw-------(chmod 600), đừng quên-l pi
Archemar

2
Bạn đã thử đăng nhập với tên người dùng sai? Bạn đã sử dụng ssh raspberrypi.localhay ssh pi@raspberrypi.local?
Thomas Weinbrenner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.