कॉपी करने में असमर्थ ~ / .ssh / id_rsa.pub


117

मैं SSH कुंजी उत्पन्न करने में अनुसरण कर रहा हूं , यह कहता है

sudo apt-get install xclip

डाउनलोड और xclip स्थापित करता है। यदि आपके पास नहीं है apt-get, तो आपको दूसरे इंस्टॉलर का उपयोग करना पड़ सकता है (जैसे yum)

xclip -sel clip < ~/.ssh/id_rsa.pub

आपके क्लिपबोर्ड पर id_rsa.pub फ़ाइल की सामग्री की प्रतिलिपि बनाता है

लेकिन उसके बाद मैं चलाने xclip -sel clip < ~/.ssh/id_rsa.pubमैं Error: Can't open display: (null) क्या समस्या है? मैं इधर-उधर भटकता रहा लेकिन उसे कुछ नहीं मिला


क्या echo $DISPLAYकहता है?
फ्रेड फू

कुछ भी तो नहीं। मैं ssh के माध्यम से एक सर्वर पर इस कमांड को चला रहा हूं
माइकल पाचेको

जवाबों:


123

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pubमेरे लिए काम नहीं किया ( ubuntu 14.04), लेकिन आप उपयोग कर सकते हैं:

cat ~/.ssh/id_rsa.pub

अपनी सार्वजनिक कुंजी प्राप्त करने के लिए


11
यह उन लोगों के लिए नंबर 1 का उत्तर होना चाहिए जो ssh
dval

23
सिवाय जब आप एक लंबी फ़ाइल को कॉपी करने की कोशिश कर रहे हों।
फ्लेवियन हाटबॉइस

26
@dval, मैं सहमत नहीं हूं कि यह नंबर 1 का उत्तर होगा, क्योंकि प्रश्न में xclipएसएसएच कुंजी को बस के साथ प्रदर्शित नहीं करने का उपयोग किया गया है cat ~/.ssh/id_rsa.pub। हालांकि, यह समस्या को हल करने में मदद करता है, क्योंकि आप प्रदर्शित होने पर मूल्य की प्रतिलिपि बना सकते हैं।
निक सुमीको

123
क्या?! यह कैसे काम नहीं कर रहा है की समस्या को हल कर सकते हैं?
वातो

26
दरअसल, यह जवाब बेहद भ्रामक है।
हसन कैन सारल

78

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

clip.exe < ~/.ssh/id_rsa.pub

Windows 'clip.exe को इंगित करने के लिए इस पृष्ठ के लिए धन्यवाद (और आपको ".exe" लिखना होगा) बैश शेल से चलाया जा सकता है।


8
तुम भी पाइप cat ~/.ssh/id_rsa.pub | clip.eseकाम करता है का उपयोग कर सकते हैं
chriz

2
@chriz मुझे लगता है कि आप "एक्से" नहीं "एसे" का मतलब है?
मार्क स्टबर्ट

3
ओह, हाँ, क्षमा करें कि यह सिर्फ एक टाइपो था, यह है cat ~/.ssh/id_rsa.pub | clip.exe। यह बात बताने के लिए धन्यवाद।
chriz

1
@ मोयताबा कंट्रोल्ड SHIFT V.
JoanComasFdz

1
और उन सभी के लिए जिन्होंने सभी प्लेटफार्मों पर एक ही कमांड पसंद किया है: इसे अपने ~/.bashrcया ~/.bash_profile: में जोड़ें alias pbcopy="clip.exe"। और पाइप |ठीक करने के लिए @chriz को धन्यवाद , ठीक काम करता है।
डियो फुंग

37

यह यहाँ पोस्ट नहीं करने के जवाब का बहुत अच्छा था । यह गिलेस से , आस्कुबंटु का एक साथी उपयोगकर्ता है :

क्लिपबोर्ड एक्स सर्वर द्वारा प्रदान किया जाता है । इससे कोई फर्क नहीं पड़ता कि सर्वर हेडलेस है या नहीं, क्या मायने रखता है कि आपका स्थानीय ग्राफिकल सेशन रिमोट मशीन पर चलने वाले प्रोग्राम्स के लिए उपलब्ध है। एक्स के नेटवर्क-पारदर्शी डिजाइन के लिए धन्यवाद, यह संभव है।

मुझे लगता है कि आप SSH के साथ लिनक्स चलाने वाली मशीन से दूरस्थ सर्वर से जुड़ रहे हैं। सुनिश्चित करें कि X11 अग्रेषण क्लाइंट कॉन्फ़िगरेशन और सर्वर कॉन्फ़िगरेशन दोनों में सक्षम है। ग्राहक विन्यास में, आप लाइन की आवश्यकता है ForwardX11 yesमें ~/.ssh/configडिफ़ॉल्ट रूप से उस पर है, या विकल्प पारित -Xकरने के लिए sshसिर्फ इतना है कि सत्र के लिए आदेश। सर्वर कॉन्फ़िगरेशन में, आपको लाइन X11Forwarding yesइन /etc/ssh/sshd_config(यह उबंटू पर डिफ़ॉल्ट रूप से मौजूद है) की आवश्यकता है।

X11 अग्रेषण सक्षम है या नहीं, यह जाँचने के लिए, DISPLAYपर्यावरण चर के मान को देखें echo $DISPLAY:। आपको एक मूल्य देखना चाहिए localhost:10(रिमोट मशीन पर चलने वाले एप्लिकेशन को उसी मशीन पर चलने वाले डिस्प्ले से कनेक्ट करने के लिए कहा जाता है, लेकिन यह डिस्प्ले कनेक्शन वास्तव में आपके क्लाइंट-साइड डिस्प्ले के लिए SSH द्वारा अग्रेषित किया जाता है)। ध्यान दें कि यदि DISPLAYसेट नहीं किया गया है, तो इसे मैन्युअल रूप से सेट करने का कोई फायदा नहीं है: यदि अग्रेषित किया जाता है तो पर्यावरण चर हमेशा सही ढंग से सेट होता है। आप SSH कनेक्शन मुद्दों का निदान करने की जरूरत है, विकल्प पारित -vvvकरने के लिए sshक्या हो रहा है की एक विस्तृत पता लगाने के लिए।

यदि आप किसी अन्य माध्यम से कनेक्ट कर रहे हैं, तो आप X11 अग्रेषण प्राप्त करने में सक्षम हो सकते हैं या नहीं कर सकते हैं। यदि आपका क्लाइंट Windows चला रहा है, तो PuTTY X11 अग्रेषण का समर्थन करता है; आपको Windows मशीन जैसे Xming पर एक X सर्वर चलाना होगा ।

द्वारा गाइल्स askubuntu से


17

यदि आप दूरस्थ होस्ट पर xclip का उपयोग करने की कोशिश कर रहे हैं तो अपने ssh कमांड में -X जोड़ें

ssh user@host -X

अधिक विस्तृत जानकारी यहाँ से प्राप्त की जा सकती है: https://askubuntu.com/a/305681


10

आपके द्वारा लिंक किए गए दस्तावेज़ों को पढ़ें। यह पूरी तरह मूर्खतापूर्ण है! xclipसिर्फ एक क्लिपबोर्ड है। आपको कॉपी पेस्ट करने के अन्य तरीके मिलेंगे ... (मुझे यकीन है)


यदि आप एक ग्राफिकल एक्स सत्र के अंदर से काम नहीं कर रहे हैं तो आपको $DISPLAYकमांड के लिए पर्यावरण संस्करण को पास करना होगा । इसे इस तरह चलाएं:

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub

बेशक :0आपके द्वारा उपयोग किए जा रहे डिस्प्ले पर निर्भर करता है। यदि आपके पास एक विशिष्ट डेस्कटॉप मशीन है तो संभावना है कि यह है:0


7
मुझे मिलता है Error: Can't open display: :0। वैसे, मैं Git Bash के माध्यम से एक VPS एक्सेस कर रहा हूं। VPS ubuntu है, स्थानीय मशीन है windows7
cqcn1991

मुझे ऐसा लगता है। लेकिन मैं उबंटू से परिचित नहीं हूं। क्या आप मुझे कुछ सलाह दे सकते हैं?
cccn1991

योग्य, मैं बिल्कुल भुगतान नहीं कर रहा हूँ। मैं बिल्ली
इंटेड का

1
मेरे पास @ cqcn1991
Nam G VU

1
का उपयोग करना DISPLAY=:0 xclipभी काम से क्लिपबोर्ड को साफ करने के लिए काम करता है। मेरे मामले में, मैं atक्लिपबोर्ड को कॉपी करने के दो मिनट बाद खाली करने के लिए उपयोग कर रहा हूं ।
मजगिस

9

यह कोशिश करो और यह एक आकर्षण की तरह काम करेगा। मुझे एक ही त्रुटि हो रही थी लेकिन इस दृष्टिकोण ने मेरे लिए चाल चली:

ssh USER@REMOTE "cat file"|xclip -i

8

निम्नलिखित मेरे लिए भी काम कर रहा है:

ssh <user>@<host>  "cat <filepath>"|pbcopy 

एक pem फ़ाइल का उपयोग करके भी काम करता है: ssh -i /path/myapp.pem <user> @ <host> "cat <filepath>" | pbcopy
एनेमल

4
मुझे लगा कि pbcopy एक मैक चीज़ थी, न कि लिनक्स
अलेक्जेंडर मिल्स

1

उपयोगकर्ता द्वारा इस कमांड को जोड़ें: ssh user_to_acces @ hostName -X

user_to_acces = उपयोगकर्ता hostName = hostname मशीन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.