Cara menggunakan Putty untuk meneruskan kunci

7

Situasi saya: - Saya terhubung dari PC saya (Windows 7) ke server A via (menggunakan kunci pribadi dan kata sandi saya) dengan userA- Saya ingin terhubung dari A ke server B melalui perintah ssh:, ssh userB@serverNametetapi Saya mendapatkan "Izin ditolak".

Untuk setiap server, kunci saya ada di folder ssh\authorized_keys. Bahkan, jika saya dapat terhubung dari PC saya ke server B secara langsung dan jika saya mencoba terhubung dari server A, saya mendapatkan kesalahan ini.

Orang-orang yang menggunakan Linux berhasil menggunakan perintah ssh -Auntuk terhubung ke server B. Saya percaya opsi Putty "Agen forwarding" adalah setara tapi .. tidak, masih kesalahan yang sama.

Log dari ssh, ketika saya mencoba untuk terhubung ke server B dari server A:

OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to serverB port 22.
debug1: Connection established.
debug1: identity file /home/userA/.ssh/identity type -1
debug1: identity file /home/userA/.ssh/id_rsa type -1
debug1: identity file /home/userA/.ssh/id_dsa type -1
debug1: loaded 3 keys
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_4.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'serverB' is known and matches the RSA host key.
debug1: Found key in /home/userA/.ssh/known_hosts:2
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
*******************************************************************************
*            This equipment is the propertyof            *
*                    UNAUTHORIZED ACCESS WILL BE PROSECUTED                   *
*******************************************************************************
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Unknown code krb5 195

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

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

debug1: Next authentication method: publickey
debug1: Trying private key: /home/userA/.ssh/identity
debug1: Trying private key: /home/userA/.ssh/id_rsa
debug1: Trying private key: /home/userA/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Noche
sumber

Jawaban:

20

Ya, opsi ini setara, namun, itu tidak meneruskan kunci secara umum - itu meneruskan koneksi ke "agen SSH" secara khusus. "Agen" menyimpan kunci Anda dalam memori, didekripsi (jadi Anda hanya perlu membukanya sekali), dan klien memintanya untuk menandatangani data untuk otentikasi.

Di Linux / Unix / BSD / Cygwin, program agen OpenSSH adalah ssh-agent(meskipun dalam beberapa kesempatan diganti oleh gpg-agent atau gnome-keyring, tetapi itu tidak masalah di sini).

Sementara itu, Putty pada Windows memiliki  pageant.exeuntuk tujuan yang sama. (Program lain, seperti WinSCP, juga menggunakan Pageant.)

Pertama, mulai agen dan muat kunci Anda ke dalamnya. (Mengklik dua kali file kunci .ppk akan cukup.) Sekarang, ketika Putty pada PC Anda terhubung ke server A, itu akan menggunakan kunci Anda dari agen yang berjalan di PC Anda, bukan dari file .ppk.

  • Kontes pada PC (agen) ⇆ Putty pada PC (klien) ⇆ sshd di serverA (server)

Demikian pula, ketika Anda berada di server A dan menjalankan ssh serverB, ia mencoba untuk menghubungi agen yang berjalan di serverA.

  • ??? (agen) ⇆ ssh di serverA (klien) ⇆ sshd di serverB (server)

Jika Anda terhubung ke server A dengan "Penerusan agen" atau -Aopsi diaktifkan, maka Putty akan menyampaikan koneksi agen, dan sshpada serverA akan dapat menggunakan kunci dari agen di PC Anda.

  • Kontes pada PC (agen) ⇆ Putty pada PC (klien penerusan) ⇆ sshd di serverA (penerusan server) ⇆ ssh di serverA (klien) ⇆ sshd di serverB (server)
grawity
sumber