क्या 22 के अलावा पोर्ट पर ssh-copy-id चलाना संभव है?


99

मेरे पास एक सर्वर है जिसमें SSH एक गैर-मानक पोर्ट पर चल रहा है। 22 के बजाय, यह 8129 पर चलता है। लॉग इन करने के लिए, मैं उपयोग करता हूं:

ssh -p 8129 hostname

अब, जब भी मुझे पासवर्ड-कम लॉगिन के लिए एक कुंजी सेट करने की आवश्यकता होती है, मुझे सार्वजनिक कुंजी की प्रतिलिपि बनानी होगी और इसे मैन्युअल रूप से अधिकृत_की में जोड़ना होगा। मुझे पता चला कि ssh-copy-idइस प्रक्रिया को सरल बनाने के लिए कमांड का उपयोग किया जा सकता है, लेकिन ऐसा लगता है कि इसमें sw सर्वर के पोर्ट को निर्दिष्ट करने का विकल्प नहीं है।

क्या ssh-copy-idपोर्ट 8129 का उपयोग करने के बारे में बताने का कोई तरीका है , या क्या मुझे बस इस कमांड के बारे में भूल जाना चाहिए और मैन्युअल रूप से कॉपी / पेस्ट करना चाहिए?

जवाबों:


112
$ ssh-copy-id "-p 8129 user@host"

स्रोत: http://it-ride.blogspot.com/2009/11/use-ssh-copy-id-on-different-port.html

नोट: पोर्ट उपयोगकर्ता @ होस्ट के सामने होना चाहिए या यह हल नहीं होगा


11
यह वास्तव में बेवकूफ है, जिसमें sshवाक्यविन्यास है ssh -p 1234 user@host, ssh-copy-id "-p 1234 user@host"और अंत में scp -P 1234 user@host। एक ही वाक्यविन्यास होना बहुत अच्छा होगा।
टॉम्बर्ट

2
@ टॉमबार्ट और फिर rsync है rsync -e "ssh -p 1234" user@host। मैं कसम खाता हूं कि यह कस्टम पोर्ट का उपयोग करने की तुलना में अधिक परेशानी वाला है।
गार्टमेकिनले

1
@ कोल्ट मैककॉर्मैक का उत्तर बताता है कि यह नए संस्करणों में सुधार किया गया है, और इस अजीब वाक्यविन्यास की अब आवश्यकता नहीं है।
मेशी

1
FYI करें पूर्ण कमांड के लिए दो बार टाइप किए गए आईपी की आवश्यकता होती है, और कुछ इस तरह दिखना चाहिए:ssh-copy-id "root@192.168.0.100 -p 12345" -i ~/.ssh/id_rsa.pub 192.168.0.100
पतित

1
MacOS पर (मैं हाई सिएरा पर हूं) उद्धरण आवश्यक नहीं हैं। अर्थात। ssh-copy-id -p 8129 user@hostकाम करता है।
अर्जुन मेहता

46

ssh-copy-idकोई तर्क नहीं लेता है कि यह अंतर्निहित sshकमांड के लिए नीचे पारित हो सकता है , लेकिन आप एक उपनाम को कॉन्फ़िगर कर सकते हैं ~/.ssh/config

Host myhost
HostName hostname
Port 8129

फिर चला ssh-copy-id myhost


3
-pनियमित sshप्रयासों पर ध्वज की आवश्यकता को हटाने का भी यह लाभ है । इसलिए यह इस प्रश्न का केवल सही उत्तर नहीं है, यह द राइट थिंग है, अवधि।
वॉरेन यंग

इसके लिए धन्यवाद। यदि आप होस्ट के प्राकृतिक होस्टनाम से संतुष्ट हैं तो दूसरी पंक्ति "HostName hostname" आवश्यक नहीं है।
लोनिविब

17

Opensh-client_6.2 के रूप में अब इस सिंटैक्स के लिए कमांड के लिए एक समर्पित पोर्ट फ्लैग है:

ssh-copy-id -p 8129 user@example

इसमें -o ध्वज के साथ अन्य ssh विकल्प जोड़ने के लिए समर्थन भी जोड़ा गया।

उपयुक्त संस्करण के लिए उबंटू का मैन पेज 13.04 में प्रस्तुत किया गया है: http://manpages.ubuntu.com/manpages/saucy/man1/ssh-copy-id.1.html


3
यह एकमात्र तरीका है जिसने इसके लिए काम किया।
लुका स्टीब

11

स्रोत पर एक त्वरित नज़र यह इंगित करती है कि ssh-copy-idऐसा कोई फ़ंक्शन नहीं है जो इसे अनुमति देता है। हालाँकि, आप इसके बजाय निम्नलिखित कुछ कर सकते हैं:

ssh -p8129 user@host 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_*.pub


5

मैंने हमेशा scpइसे कॉपी करने के लिए उपयोग किया है:

scp -P 8129 ~/.ssh/id_*.pub user@host:
ssh -p 8129 user@host 'cat id_*.pub >> ~/.ssh/authorized_keys'

हालांकि मुझे कहना होगा, अगर मैं भविष्य में उन्हें याद रखूंगा तो मैं अन्य (एक-पंक्ति / कनेक्शन) विधियों का उपयोग करूंगा। लेकिन यह आपके लिए एक और विकल्प है।


2

CentOS7 पर बस है:

 ssh-copy-id "-p 1234" user@host

कृपया ध्यान रखें कि उद्धरणों के भीतर उपयोगकर्ता @ होस्ट न रखें या आपको इस वितरण में निम्न त्रुटि मिलेगी:

/usr/bin/ssh-copy-id: ERROR: Bad port ' 1234 user@host'


0

मैं इस कमांड का उपयोग करता हूं:

ssh-copy-id ssh://user@ip_addr:port

उदाहरण:

ssh-copy-id ssh://root@1.2.3.4:23

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