स्थानीय नेटवर्क में एन्क्रिप्शन (ssh) के बिना फ़ाइलों की प्रतिलिपि बनाएँ


22

scpसभी मामलों में अच्छी तरह से काम करता है, लेकिन रास्पबेरी पाई एक सुरक्षित वातावरण (लैन) में कुशलतापूर्वक फाइलों की नकल करने के लिए कमजोर है। 54 Mbit वायरलेस लैन के माध्यम से सैद्धांतिक रूप से संभव 6,75 MB / s लगभग 1.1 MB / s तक सिकुड़ जाता है।

क्या एन्क्रिप्शन के बिना दूरस्थ रूप से फ़ाइलों को कॉपी करने का एक तरीका है?

यह एक cli कमांड होनी चाहिए जिसमें अतिरिक्त सेवाओं (ftp, samba) पर निर्भरता न हो या कम से कम कॉन्फ़िगरेशन के साथ हो। मेरा मतलब है, एक मानक उपकरण जो मानक प्रोग्राम / सेवाओं (जैसे scp / ssh) के साथ काफी अच्छी तरह से काम करता है।


2
"बिना किसी निर्भरता के" वास्तव में संभव नहीं है। आपको हमेशा एक कार्यक्रम की आवश्यकता होगी जो एक तरफ "सुनता है" (जैसे ssh / sftp सर्वर का उपयोग करते समय scp)
umläute

2
Netcat के बारे में क्या ?
योरगॉच

ठीक है तुम सही हो। मैं आवश्यकताओं को बदल
दूंगा

@ umläute जब तक क्लाइंट सर्वर पर ssh / rsh नहीं कर सकता और stdin / out पर संवाद नहीं कर सकता। पुराने दिनों में टार को दूर से मंगवाए गए टार को एक मशीन से दूसरी मशीन में आसानी से निर्देशिका पेड़ों को कॉपी करने का तरीका था।
थोरबजोरन रावन एंडरसन

जवाबों:


14

आप देख सकते हैं rcp, यह दूरस्थ निष्पादन करता है rshइसलिए आपको उस पर भरोसा करना होगा और यह ध्यान रखना होगा कि सभी संचार असुरक्षित हैं।


12

आप एन्क्रिप्शन को ssh / scp पर पूरी तरह से अक्षम नहीं कर सकते हैं, लेकिन आप इसे एक कमजोर सिफर का उपयोग करने के लिए मजबूर कर सकते हैं जो बहुत कम सीपीयू गहन है। सुनिश्चित करें कि आपके ssh_config पर या कमांड लाइन पर संपीड़न चालू नहीं है और कमजोर साइपर -c arcfour,blowfish-cbcका चयन करने के लिए अपने scp कमांड लाइन में जोड़ें ।


1
यह एक अच्छा विचार है। क्या यह मेजबान विशिष्ट कॉन्फ़िगरेशन के लिए संभव है? (.ssh / config)
मैनुएल श्नाइड 3r

3
@ ManuelSchneid3r: हाँ: Hostआपके ssh_config में एक सेक्शन के तहत , Ciphers arcfour,blowfish-cbcउपरोक्त -cस्विच को मिरर करने के लिए उपयोग करें। हालाँकि, यदि आपका CPU AES-NI अनुदेश सेट का समर्थन करता है, तो मैं स्विच करने की कोशिश करूँगा aes128-gcm@openssh.com(हाँ, यह @सामान सहित सिफर नाम है ), जो धधकते हुए तेज़ (AES-NI के साथ) AES128-GCM का उपयोग करेगा।
रीड

मैं वास्तव में ब्लोफिश को एक सामान्य मामले में कमजोर सिफर नहीं कहूंगा (यानी आर-पाई नहीं) AE को hw त्वरण द्वारा बढ़ाया जा सकता है।
पेट्रफ

9

मैंने यह त्वरित स्क्रिप्ट लिखी है:

#!/bin/bash

ssh "$1" "nc -l 2020 > \"$2\" &"
pv "$2" | nc "$1" 2020

यह दो args लेता है, इसे भेजने के लिए होस्ट और आपके द्वारा भेजी जा रही फ़ाइल। यह केवल एक फ़ाइल के लिए काम करता है। यह ssh का उपयोग netcatविपरीत सिरे पर सुनने को शुरू करने के लिए करता है और फिर netcatउस सुनने वाले बंदरगाह पर भेजने के लिए उपयोग करता है। मैंने pvएक अच्छी प्रगति पट्टी देने के लिए शुरुआत में जोड़ा । बदलें pvके साथ catआप नहीं है, तो या कि चाहते हैं। 2020 पोर्ट को आप जो चाहें पसंद करें। इसके लिए आपको दूरस्थ सिस्टम तक ssh की पहुँच की आवश्यकता होती है।

यह पूरी तरह से असुरक्षित है, लेकिन तब, यही आप चाहते थे।


9

मुझे लगता है कि एनएफएस इस प्रकार के कार्य के लिए काफी कम है, जहां आप सुविधा, गति चाहते हैं और सुरक्षा की परवाह नहीं करते हैं। NFS वास्तव में सेट अप करने के लिए वास्तव में सरल है, विशेष रूप से क्लाइंट पर: ubuntu के लिए यह लघु मार्गदर्शिका देखें , साथ में यह ubuntu डेटा सहायता पृष्ठ भी । ग्राहक के दृष्टिकोण से तुम सिर्फ सर्वर निर्देशिका माउंट और यह सिर्फ एक स्थानीय ड्राइव की तरह लग रहा है और आप उपयोग कर सकते हैं cpया rsyncया जो भी आदेश आप चाहते हैं।


किस प्रकार की गति के साथ आपके अनुभव की उम्मीद है?
थोरबजोरन रावन एंडरसन

1
@ एनएफएस के लिए Thorbjørn Ravn Andersen ने गिगाबिट ईथरनेट और PCIe3 x4 SSDs का उपयोग करके पाया कि मुझे नेटवर्क अड़चन था। गिगाबिट ईथरनेट के बजाय QDR Infiniband का उपयोग करना SSDs अड़चन थे। लिनक्स का कर्नेल NFS सर्वर काफी कम ओवरहेड है।
एरिक एम

4

एचपीसी (उच्च प्रदर्शन कम्प्यूटिंग) के लिए ओपनश के लिए पैच हैं जो ट्रांसफर विंडो के आकार में वृद्धि और एन्क्रिप्शन को अक्षम करके एसएच थ्रूपुट में सुधार करते हैं - यदि आपको फिर से काम करने का मन नहीं है (और शायद आगे पोर्टिंग पैच), तो एचपीएन-एसएसएच की जांच करें । जैसा कि BowlOfRed ने टिप्पणी में देखा, आपको क्लाइंट और सर्वर दोनों पर पैच का उपयोग करने की आवश्यकता होगी ।

तुम भी उपयोग कर सकते हैं rsync- एक मशीन पर एक डेमन के रूप में और दूसरे पर एक साधारण ग्राहक के रूप में। यह नेटवर्क लिंक पर बड़ी मात्रा में सिंक्रनाइज़ करने के लिए विशेष रूप से उपयोगी है जो फ़ाइलों को पढ़ने (और चेकसमिंग) की तुलना में धीमा है, क्योंकि यह फाइलों के उन हिस्सों को स्थानांतरित करने में सक्षम है जो क्लाइंट और सर्वर के बीच भिन्न होते हैं। विवरण के लिए देखें rsync(1)और rsyncd.conf(5)मैन पेज देखें।


4
यह आपके उत्तर में स्पष्ट नहीं था, लेकिन इन पैच में SSH में "कोई नहीं" सिफर का उपयोग करने की क्षमता शामिल है (दूसरे शब्दों में, एन्क्रिप्शन को पूरी तरह से अक्षम करें)। दोष यह है कि आपको इसे लागू करना होगा और इसे दोनों सिरों पर चलाना होगा। एक सामान्य सर्वर "कोई नहीं" सिफर स्वीकार नहीं करेगा।
बाउलऑफ्रेडेड

बहुत अच्छी बात!
पेट्रोफ

4

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

यह देखना आसान है कि यदि आप सिर्फ कमांड देखते हैं तो यह क्या कर रहा है।

DestinationShell# nc -l -p 2020 > file.txt

SourceShell# cat file.txt | nc dest.ip.address 2020

nc, या netcat, बिलकुल बिल्ली की तरह है, आउटपुट को छोड़कर किसी दूसरी मशीन में टीसीपी कनेक्शन के माध्यम से गूँजती है। आप केवल गंतव्य फ़ाइल में सर्वर पर nc के आउटपुट को आगे बढ़ा रहे हैं। आप उसी तरह से डेस्टिनेशन को सेटअप कर सकते हैं echo foo | nc dest.ip.address 2020और nc के साथ अन्य सभी तरह के काम कर सकते हैं।


2

पिछले अपडेट के कुछ समय हो गए हैं, कुछ सिफर बदल गए हैं, और कम से कम फ्रीबीएसडी पर, ब्लोफिश अब उपलब्ध नहीं है। वर्तमान ssh इंस्टॉलेशन के साथ मैंने जो सबसे तेज सिफर पाया वह है -c aes128-cbc।

का आनंद लें।


0

यदि आप संपूर्ण फ़ाइल संरचनाओं का उपयोग करना चाहते हैं तो टार का उपयोग करें।

प्राप्त प्रणाली में:

[]# nc -l 2020 | tar xvf -

फिर भेजने की प्रणाली पर:

[]# tar cvf - | nc dst.hostname.net 2020

फ़ाइलें संग्रह को एक सिस्टम पर देखें और दूसरे पर निकालें;)

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