SSH masih meminta kata sandi dengan berwenang_kunci


1

Saya mencoba masuk ke server dengan pengguna yang berbeda. Nama pengguna di server adalah gitquery. Saya menggunakan ssh-keygen untuk membuat file-file ini secara lokal:

/opt/gitquery/gitquery-rsa
/opt/gitquery/gitquery-rsa.pub

Lalu saya menyalin kunci publik ke server:

scp /opt/gitquery/gitquery-rsa.pub gitquery@someserver.company.com:~/.ssh/authorized_keys

Menurut pertanyaan lain di StackOverflow, masalah yang biasa terjadi adalah izin, jadi saya memastikan mereka benar:

gitquery@someserver:~/.ssh$ ls -al
total 20
drwx------ 2 gitquery gitquery 4096 Jul 27 10:19 .
drwxr-xr-x 4 gitquery gitquery 4096 Jul 27 10:08 ..
-rw------- 1 gitquery gitquery  403 Jul 27 10:07 authorized_keys
-rw------- 1 gitquery gitquery 1766 Jul 27 09:38 id_rsa
-rw-r--r-- 1 gitquery gitquery  397 Jul 27 09:38 id_rsa.pub

Ketika saya mencoba terhubung ke server, masih meminta kata sandi! Inilah keluaran verbose:

$ ssh -vvv -i /opt/gitquery/gitquery-rsa gitquery@someserver.company.com
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to someserver.company.com [#.#.#.#] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug3: Incorrect RSA1 identifier
debug3: Could not load "/opt/gitquery/gitquery-rsa" as a RSA1 public key
debug1: identity file /opt/gitquery/gitquery-rsa type 1
debug1: identity file /opt/gitquery/gitquery-rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 pat OpenSSH_6.6.1* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug3: load_hostkeys: loading entries for host "someserver.company.com" from file "/root/.ssh/known_hosts"
debug3: load_hostkeys: found key type ECDSA in file /root/.ssh/known_hosts:2
debug3: load_hostkeys: loaded 1 keys
debug3: order_hostkeyalgs: prefer hostkeyalgs: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit: curve25519-sha256@libssh.org,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: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519-cert-v01@openssh.com,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-ed25519,ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@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,chacha20-poly1305@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: curve25519-sha256@libssh.org,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,ssh-ed25519
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@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,chacha20-poly1305@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
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: setup hmac-md5-etm@openssh.com
debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
debug2: mac_setup: setup hmac-md5-etm@openssh.com
debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA ##:##:##:##:##:##:##:##:##:##:##:##:##:##:##:##
debug3: load_hostkeys: loading entries for host "someserver.company.com" from file "/root/.ssh/known_hosts"
debug3: load_hostkeys: found key type ECDSA in file /root/.ssh/known_hosts:2
debug3: load_hostkeys: loaded 1 keys
debug3: load_hostkeys: loading entries for host "##.##.##.##" from file "/root/.ssh/known_hosts"
debug3: load_hostkeys: found key type ECDSA in file /root/.ssh/known_hosts:3
debug3: load_hostkeys: loaded 1 keys
debug1: Host 'someserver.company.com' is known and matches the ECDSA host key.
debug1: Found key in /root/.ssh/known_hosts:2
debug1: ssh_ecdsa_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: /opt/gitquery/gitquery-rsa (0x7f648f0d2230), explicit
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
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: /opt/gitquery/gitquery-rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug2: input_userauth_pk_ok: fp ##:##:##:##:##:##:##:##:##:##:##:##:##:##:##:##
debug3: sign_and_send_pubkey: RSA ##:##:##:##:##:##:##:##:##:##:##:##:##:##:##:##
debug1: key_parse_private2: missing begin marker
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/opt/gitquery/gitquery-rsa':

Strange: Output verbose mengatakan 'Identifier RSA1 salah' meskipun saya membuat kunci dengan ssh-keygen. Server menerima kunci, tetapi kemudian key_parse lokal mengembalikan kesalahan. Apa yang sedang terjadi?



2
masalah Anda adalah "Masukkan frasa sandi untuk kunci". Sebenarnya tidak ada yang salah. Pertimbangkan untuk menggunakan ssh-agent atau hapus saja frasa sandi. help.github.com/articles/working-with-ssh-key-passphrases
Chris.C

Anda salah. Seluruh ide di balik file Authorized_key adalah untuk memungkinkan login tanpa kata sandi. Lihat halaman manual ssh, lihat ini: 'Setelah ini, pengguna dapat masuk tanpa memberikan kata sandi.'
digory doo

seluruh ide di balik berwenang_kunci adalah bahwa Anda tidak perlu memasukkan password server , ini berbeda dari frasa sandi untuk kunci pribadi, yang merupakan lapisan keamanan ekstra tapi opsional - dan itulah masalah Anda yang sebenarnya di OP. Silakan luangkan waktu sebentar untuk membaca tautan github lagi.
Chris.C

OKE, kamu benar.
digory doo

Jawaban:


1

Metode praktik terbaik untuk menyalin kunci publik ke server jauh adalah dengan menggunakan ssh-copy-id.

ssh-copy-id [-i [identity_file]] [user@]machine

Saya menyarankan untuk menghapus file yang diotorisasi yang dibuat dan menyalin kembali kunci Anda dengan ssh-copy-id.

ssh-copy-id -i /opt/gitquery/gitquery-rsa gitquery@company

Selama pembuatan kunci Anda hanya perlu menekan enter ketika ssh-keygen meminta Anda untuk kata sandi jika Anda ingin login tanpa kata sandi

Enter passphrase for key '/opt/gitquery/gitquery-rsa':

Saya memindahkan file otor_keys dan menggunakan ssh-copy-id untuk menginstalnya kembali seperti yang Anda sarankan. File Authorized_key baru dibuat dalam file .ssh, tetapi diff memberitahu saya bahwa file lama dan baru persis sama. Ssh tanpa harus memberikan kata sandi masih tidak berfungsi. :(
digory doo

Mungkinkah Anda memberikan kata sandi selama pembuatan pasangan kunci? Anda hanya perlu menekan enter ketika ssh-keygen meminta kata sandi jika Anda ingin login tanpa kata sandi Enter passphrase for key '/opt/gitquery/gitquery-rsa':
cakuzo

Ups! Itu dia! Saya konyol! Tulis ini sebagai jawaban, maka saya akan menerimanya ...
digory doo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.