सवाल एसएसएच टाइपिंग देरी से बचने का कोई तरीका है?


क्या मैं एसएसएच को केवल प्रवेश या टैब दबाकर डेटा भेजने के लिए कह सकता हूं, और प्रत्येक व्यक्तिगत कीप्रेस के बाद नहीं?


38
2017-08-18 11:41


मूल


मुझे बहुत दिलचस्पी है कि आपके पास ऐसी टाइपिंग देरी है कि आप इसके साथ काम नहीं कर सकते हैं। मैंने मॉडेम युग में एसएसएच का इस्तेमाल किया और कभी इन मुद्दों का सामना नहीं किया। - mailq
मैं बेल्जियम से स्लाइसहोस्ट वीपीएस (यूएसए) तक पहुंच रहा हूं। देरी मुझे भ्रमित करने के लिए पर्याप्त उल्लेखनीय है। हालांकि, मैंने देखा है कि अन्य लोगों से मैं इससे कम परेशान हूं .. - StackedCrooked
mosh.mit.edu - alfC


जवाब:


नहीं, क्योंकि एसएसएच के पास यह जानने का कोई तरीका नहीं है कि आप जो टाइप कर रहे हैं उसे एंटर या टैब की कार्रवाई की आवश्यकता होगी - अगर आप अपने कमांड इतिहास से गुजरने की कोशिश कर रहे हैं, उदाहरण के लिए, ^R या ऊपर तीर स्वयं द्वारा नहीं भेजा जाएगा, और वह ... अप्रिय होगा।

स्क्रीन पर दिखाई देने के लिए आपको प्रत्येक चरित्र के बीच प्रतीक्षा करने की ज़रूरत नहीं है, हालांकि; यदि आपको पता है कि आपको क्या टाइप करना है, तो जितनी जल्दी हो सके उतनी जल्दी दूर हो जाएं, और जब आप टाइपिंग बंद कर देते हैं तो टर्मिनल लगभग एक राउंड-ट्रिप टाइम में पकड़ लेगा, जो उतना अच्छा होगा जितना आप बाहर निकल जाएंगे वैसे भी एक लाइन-buffered सेटअप (पैकेट नुकसान अलग है, लेकिन यह अपने स्वयं के दिलचस्प quirks परिचय)।


28
2017-08-18 11:48



मैं कई मशीनों में एसएसएच-टाइपिंग-स्पीड को बेंचमार्क करने का एक तरीका खोजने में वास्तव में दिलचस्पी लेता हूं। मैंने देखा कि गति एक ही स्थान पर स्थित मशीनों के बीच एक बहुत कम हो सकती है और जिन पर उनके ऊपर कोई भारी भार नहीं है। मेरा सिद्धांत यह है कि यह विशेष रूप से एडब्ल्यूएस (जैसे माइक्रो या मिनी) के छोटे उदाहरणों के साथ होता है। - sorin
मोश पेपर को देखो। लेखक ने कुछ बेंचमार्किंग की mosh.org/#techinfo - user7610


पुटीटी दो विशेषताओं का उपयोग करता है जो उपयोग में हो सकते हैं: "स्थानीय इको" और "स्थानीय लाइन संपादन"। स्थानीय लाइन संपादन सबकुछ बफर करता है और केवल लाइन वापसी के बाद इसे सर्वर पर भेजता है। इससे कमांड लाइन को निपटने के लिए बहुत आसान बना दिया जा सकता है, लेकिन यह टेक्स्ट एडिटर नरक का उपयोग भी कर सकता है।

PUTTY में कुछ चीजों को सक्षम / अक्षम करने के लिए कुछ अन्य विकल्प भी हैं (नागल के एल्गोरिदम) जो कथित कनेक्शन विलंबता को प्रभावित कर सकते हैं। जैसा कि मैंने इसे देखा है, ओपनएसएसएच क्लाइंट इस संबंध में पुटीटी की सभी सुविधाओं की पेशकश नहीं करता है, और मुझे तुलना में लिनक्स विकल्प की जानकारी नहीं है।

अन्यथा, गर्भ का अधिकार सही है।


20
2017-08-18 13:36





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


17
2017-07-04 01:01



आप इसे बिना किसी सूडो के स्रोत से स्थानीय निर्देशिका पर स्थापित कर सकते हैं। इसके अलावा, mosh.org पर जाएं। यह कहता है, "कोई विशेषाधिकार प्राप्त कोड नहीं। कोई डिमन नहीं। आपको मोज़ को स्थापित या चलाने के लिए सुपरसियर होने की आवश्यकता नहीं है। क्लाइंट और सर्वर निष्पादन योग्य हैं जो सामान्य उपयोगकर्ता द्वारा चलाए जाते हैं और केवल कनेक्शन के जीवन के लिए ही होते हैं।" - Steven C. Howell
बस ध्यान दें। मोश एसएसएच नहीं है। यह अपने स्वयं के मालिकाना प्रोटोकॉल का उपयोग करता है। (मुझे इसके साथ कोई समस्या नहीं है, हालांकि।) - user7610
यह एंड्रॉइड और घर खराब वाईफाई नेटवर्क पर मेरे लिए खरोंच से काम किया। यह रीडलाइन के बारे में जानता है - tinmarino


एसएसएच सत्र के साथ खोलें ssh host.example.org bash (या जो भी खोल आप उपयोग करना चाहते हैं)।

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

अद्यतन करें:

उपर्युक्त चाल का उपयोग करते समय आप सामान्य रेखा संपादन प्राप्त कर सकते हैं (पढ़ने के लिए लाइन) पर स्थानीय एक सुविधाजनक रैपर कार्यक्रम का उपयोग करके अंत rlfe। बस दौडो rlfe ssh host.example.org bash


8
2017-08-18 17:18



मैंने कोशिश की और इसे बहुत व्यावहारिक नहीं मिला। लेकिन यह जानना अच्छा है, धन्यवाद। - StackedCrooked
यह मेरे लिए आश्चर्यजनक रूप से काम करता है। - lakesare


एक ही मुद्दा था (भयानक मोबाइल डेटा गुणवत्ता के कारण उच्च विलंबता और पैकेट नुकसान कुछ स्थानों पर), और mosh मेरे लिए इसे काट नहीं रहा है (इसे सभी दूरस्थ मेजबानों पर विशेष कार्यक्रमों की आवश्यकता है, स्थानीय स्तर पर यूटीएफ 8 को फिक्स कर बिना और उन्हें तोड़ने के बिना सभी सर्वरों पर दूरस्थ रूप से, सभी फ़ायरवॉल को संशोधित करना - और यह वास्तव में स्थानीय लाइन संपादन प्रदान नहीं करता है) मैंने लिखने का फैसला किया है प्रदान करने के लिए एक छोटा सा रैपर एसएसएच के लिए स्थानीय लाइन संपादन मोड

डिफ़ॉल्ट रूप से, यह डिफ़ॉल्ट रूप से डिफ़ॉल्ट चार-दर-मोड मोड में एसएसएच को सबकुछ पास करता है, लेकिन आप किसी भी समय रीडलाइन-संचालित स्थानीय लाइन संपादन मोड दर्ज करने के लिए हॉटकी दबा सकते हैं। तो आप स्थानीय रूप से पूरी लाइन में, संपादन के साथ (संपादन, कमांड याद करने आदि) दर्ज कर सकते हैं, और फिर जब आप दबाएंगे दर्ज इसे रिमोट साइड में एक टीसीपी पैकेट के रूप में भेजा जाएगा।

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

नुकसान यह है कि आपको हर बार स्थानीय लाइन संपादन मोड में प्रवेश करने के लिए हॉटकी दबाए जाने की आवश्यकता होती है, या आपको ऑटोडेटेक्शन की अनुमति देने के लिए रिमोट होस्ट पर प्रॉम्प्ट को संशोधित करने की आवश्यकता होती है। इसके अलावा, रिमोट टैब फ़ाइल नाम समापन वर्तमान में आपको केवल चार-चार-चर मोड पर छोड़कर काम करता है (या आपकी वरीयताओं के आधार पर दूरस्थ फ़ाइल के बजाय स्थानीय फाइल सिस्टम का उपयोग करता है)। यह प्रगति पर है, हालांकि, सुधार के लिए अनुरोध या काम करने योग्य विचारों का स्वागत है!


अपरंपरागत पक्ष पर, आप वैकल्पिक रूप से उपयोग कर सकते हैं sshfs दूरस्थ रूप से दूरस्थ फाइल सिस्टम को माउंट करने के लिए।

लाभ केवल इतना नहीं है कि आपका खोल (और इसकी रेखा संपादन) स्थानीय और अंतराल रहित है, लेकिन यह भी कि आप दूरस्थ फाइल सिस्टम पर नेविगेट कर सकते हैं और खोल फ़ाइल नाम पूर्णता का उपयोग कर सकते हैं (चाबी दबाएं) दूरस्थ फ़ाइलों के लिए। इसके अलावा, (सबसे अच्छी सुविधा आईएमएचओ) आप रिमोट फाइलों के अंतराल संपादन के लिए अपने स्थानीय संपादक के विकल्प का उपयोग कर सकते हैं।

नुकसान (विशेष रूप से यदि आप लिंक भी कम बैंडविड्थ है, न केवल उच्च विलंबता) कि प्रत्येक फ़ाइल को संपादित करने के लिए, इसे स्थानीयहोस्ट में पूरी तरह से स्थानांतरित करने की आवश्यकता है, और फिर संपादित करने के बाद, पूरी तरह से दूरस्थ रूप से स्थानांतरित हो जाती है। एसएसएचएफएस कुछ कैशिंग के लिए प्रदान करता है (sshfs (1) विकल्प देखें कैश, cache_timeout, cache_x_timeout) कुछ हद तक उन समस्याओं को कम करने के लिए। साथ ही, अगर आप रिमोट पर कुछ निष्पादित करना चाहते हैं तो आपको किसी अन्य स्क्रीन का उपयोग करने या सभी आदेशों को उपसर्ग करने की आवश्यकता है "एसएसएच remotehost" (उदाहरण के लिए ssh remotehost sudo service apache restart)। विकल्प देखें ControlMaster में ssh_config (5) इसे निष्पादित करने के लिए तेज़ी से (और पासवर्ड संकेत देने के बिना)।


5
2017-09-16 19:34





आप उस व्यवहार का अनुकरण कर सकते हैं यदि आप केवल कर कर आदेश चला रहे हैं,

ssh उपयोगकर्ता @ targetmachine 'मेरे आदेश एक स्ट्रिंग में'

परंतु,

  1. यह कनेक्शन बनाने में अतिरिक्त देरी जोड़ता है (इसका उपयोग करके कम किया जा सकता है मास्टर / साझा एसएसएच कनेक्शन)
  2. अगर आपके पास पासवर्ड रहित निजी कुंजी नहीं है तो आपको इसका उपयोग करना होगा ssh-agent या पासवर्ड टाइप करें
  3. स्पष्ट रूप से यह काम नहीं करता है अगर आप मेन्यू के साथ बातचीत कर रहे हैं या फाइलों को संपादित कर रहे हैं, इत्यादि।

2
2017-08-18 12:48





आप अपने टाइपिंग की धाराप्रवाह प्रतिध्वनि प्राप्त करने के लिए tmux का उपयोग कर सकते हैं। स्थानीय रूप से tmux चलाएं। यदि आपके पास एक फलक में एसएसएच खोल है, और उसके नीचे एक फलक में एक स्थानीय खोल है, तो स्थानीय फलक से आप रिमोट फलक पर कुंजी भेज सकते हैं।

tmux send-keys -t top 'ls' C-m

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

इसे शॉर्टकट करने के लिए मैंने इसे अपने .bashrc में जोड़ा

function ts {
    args=$@
    tmux send-keys -t right "$args" C-m
}

प्रेषण कुंजी की व्याख्या करने के लिए ईसाई पेलज़र्स्की के लिए धन्यवाद: https://minimul.com/increased-developer-productivity-with-tmux-part-5.html

उद्धरणों का उपयोग करते समय आपको बचाना होगा, उदाहरण के लिए

ts git config --global alias.lola \'log --graph --decorate --pretty=oneline --abbrev-commit --all\'

1
2017-07-19 07:35





यह वही करता है जो आप चाहते हैं। हालांकि आपको क्लाइंट और सर्वर दोनों को स्थापित करने की आवश्यकता है, और ओपनएसएसएच अपस्ट्रीम ने कभी भी बदलावों को अपनाया नहीं है। https://github.com/hyc/OpenSSH-LINEMODE


0
2017-08-09 19:03