मेरी SSH कुंजियाँ ठीक से आगे क्यों नहीं चलेंगी?


2

मैं अपनी मशीन से दूसरी मशीन पर और वहां से तीसरी मशीन पर भेजने की कोशिश कर रहा हूं। जब मैं इसे मैन्युअल रूप से करता हूं, तो यह इस तरह काम करता है:

localhost$ scp ~/.ssh/id_rsa myuser@myhost.something.something.com:.
localhost$ ssh myuser@myhost.something.something.com
myhost.something.something.com$ ssh -i id_rsa myuser@10.25.100.42
10.25.100.42$ 

लेकिन मैं इसे सीधे, एक कदम में करना चाहूंगा। और मैं चाहता हूं कि लोकलहोस्ट से लेकर तीसरी मशीन तक मेरी एसएसएच कीज़ आगे बढ़ें। मैंने सोचा था कि यह काम करेगा, लेकिन यह नहीं है:

localhost$ ssh -A -t myuser@myhost.something.something.com ssh 10.25.100.42
Permission denied (publickey).
Connection to myhost.something.something.com closed.

क्यों? मैं इसे एक ही आदेश में कैसे कर सकता हूं localhost? जब आप क्रिया ध्वज का उपयोग करते हैं तो आप कुछ और विवरण देख सकते हैं:

localhost$ ssh -v -A -t myuser@myhost.something.something.com ssh 10.25.100.42

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: Connecting to myhost.something.something.com [X.X.X.X] port 22.
debug1: Connection established.
debug1: identity file /home/myuser/.ssh/id_rsa type 1
debug1: identity file /home/myuser/.ssh/id_rsa-cert type -1
debug1: identity file /home/myuser/.ssh/id_dsa type -1
debug1: identity file /home/myuser/.ssh/id_dsa-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.6.1p1 Ubuntu-2ubuntu2
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com 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: Server host key: RSA 62:d2:58:47:f7:c6:21:b4:a1:b0:cf:4e:44:42:e4:9a
debug1: Host 'myhost.something.something.com' is known and matches the RSA host key.
debug1: Found key in /home/myuser/.ssh/known_hosts:255
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/myuser/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Authenticated to myhost.something.something.com ([X.X.X.X]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Requesting authentication agent forwarding.
debug1: Sending command: ssh 10.25.100.42
debug1: client_input_channel_open: ctype auth-agent@openssh.com rchan 2 win 65536 max 16384
debug1: channel 1: new [authentication agent connection]
debug1: confirm auth-agent@openssh.com
Permission denied (publickey).
debug1: channel 1: FORCE input drain
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 2
debug1: channel 1: free: authentication agent connection, nchannels 1
Connection to myhost.something.something.com closed.
Transferred: sent 3532, received 3312 bytes, in 4.4 seconds
Bytes per second: sent 796.1, received 746.6
debug1: Exit status 255

नीचे की तरफ क्यों ???
साकिब अली

आपको अपने सर्वर साइड लॉग को देखना होगा।
user619714

क्या आप ssh-add -lकमांड चला सकते हैं और यहां आउटपुट पोस्ट कर सकते हैं?
जैंडर

जवाबों:


4

यदि आप अपने प्रमाणीकरण एजेंट से कनेक्शन अग्रेषित करना चाहते हैं, तो आपको अपने मशीन पर प्रमाणीकरण एजेंट चलाने की आवश्यकता होगी। आप इसका उपयोग करके देख सकते हैं ssh-add -l। यदि यह नहीं चल रहा है, तो इसे शुरू करें और चाबियाँ जोड़ें:

eval `ssh-agent`
ssh-add ~/.ssh/id_rsa
# or other keys you want to use from the other server

और फिर -Aस्विच के साथ अन्य सर्वर से कनेक्ट करने के बाद , आप इस कुंजी का उपयोग करके आगे प्रमाणित कर पाएंगे:

local     $ ssh -A myuser@myhost.something.something.com
something $ ssh-add -l                     # should list your key
something $ ssh 10.25.100.42

लेकिन जो आप वास्तव में प्राप्त करने की कोशिश कर रहे हैं वह कुछ अलग है। आप पहले होस्ट को जंपबॉक्स के रूप में दूसरे से कनेक्ट करने के लिए उपयोग करना चाहते हैं और इसे ProxyCommand का उपयोग करके अधिक सुविधाजनक बनाया जा सकता है:

ssh -oProxyCommand="ssh -W 10.25.100.42:22" myuser@myhost.something.something.com

या इसके साथ बेहतर .ssh/config:

Host something
  Hostname myhost.something.something.com
  User myuser
Host second
  Hostname 10.25.100.42
  User myuser
  ProxyCommand ssh -W %h:%p something

और फिर आप बस का उपयोग कर वहाँ मिल जाएगा

ssh second

न केवल ProxyCommandअधिक सुविधाजनक है, यह अधिक सुरक्षित भी है। निजी कुंजी बेहतर तरीके से संरक्षित है। एजेंट के साथ जंप होस्ट को अग्रेषित करने के लिए किसी अन्य होस्ट को प्रमाणित करने के लिए कुंजी का उपयोग किया जा सकता है। का उपयोग करते हुए ProxyCommandकिसी भी एजेंट अग्रेषण बिना उस कमजोरी दूर करता है। इसके अलावा जब ProxyCommandइसका उपयोग करना संभव है तो कूद के कॉन्फ़िगरेशन को बाहर से हमलों के खिलाफ बहुत अधिक होस्ट करें।
10
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.