একটি কমান্ডে সমস্ত এসএসএইচ সংযোগের বাইরে বেরোন এবং পিটিটিওয়াই বন্ধ করুন


19

সমস্ত এসএসএইচ সংযোগগুলি ফিরে পাওয়ার এবং "এক শট" এ পিটিটিওয়াই বন্ধ করার কোনও উপায় আছে ? আমি উইন্ডোজ 7 এ কাজ করি এবং বিভিন্ন লিনাক্স হোস্টগুলিতে পিটিটিওয়াই থেকে এসএসএইচ ব্যবহার করি।

আমি নিজেকে যেভাবে কাজ করে দেখছি তার একটি উদাহরণ:

SSH to host1 with PuTTY...
banjer@host1:~> #...doin some work...ooh! need to go check something on host8...
banjer@host1:~> ssh host8
banjer@host8:~> #...doin some work...OK time for lunch. lets close putty...
banjer@host8:~> exit
banjer@host1:~> exit
Putty closes.

উপরের হিসাবে, হোস্ট 8 থেকে এক শটে পুটিটিওয়াই বন্ধ করার কোনও উপায়? কখনও কখনও আমি নিজেকে 5 বা 10 হোস্ট পর্যন্ত গভীর খুঁজে পাই। আমি বুঝতে পারি আমি পুটিটিওয়াই উইন্ডোটি বন্ধ করতে এক্সকে ক্লিক করতে পারি, তবে আমি নিশ্চিত করতে চাই যে আমার এসএসএইচ সংযোগগুলি প্রস্থান কমান্ডটি ব্যবহার করে সঠিকভাবে বন্ধ হয়ে গেছে। আমি আরও বুঝতে পারি যে কীভাবে অলসতা বাড়ানো যায় তার জন্য আমি পরামর্শ চাইছি। আমি কেবল এটি "কীভাবে আমি আরও দক্ষ হতে পারি" বলে লিখব।


6
আপনি যা জিজ্ঞাসা করছেন তা সরাসরি নয় তবে কীভাবে ctrl+dএকাধিকবার চাপছেন?
উলিচ ড্যাঞ্জেল

@ অলিরিচডাঙ্গেল আমি এর আগে কখনও ব্যবহার করি নি, তবে দ্রুত সংযোগ থেকে সরিয়ে নেওয়ার দ্রুত উপায়ও।
বাঞ্জার

2
আপনি কি সত্যিই 5 থেকে 10 স্তর গভীরতর ssh সেশন বাসা বাঁধছেন? আপনি কি বুঝতে পেরেছেন যে এটি একটি সংশ্লেষিত টানেল তৈরি করছে যা এই সমস্ত হোস্টের মাধ্যমে আপনার এসএস সেশনে সমস্ত প্যাকেটগুলিকে বাউন্স করে? আপনি কি কেবল এসএসএস সেশন নেস্টিং না করে সমস্যাটি সরিয়ে দিতে পারবেন?
jw013

@ jw013 না, আমি তা বুঝতে পারি নি, তবে তা উপলব্ধি করে। সত্যিই, 5-10 স্তরগুলি ছিল অতিরঞ্জিত, তবে আমি "আমার কীভাবে পুট্টির বাইরে পরিষ্কারভাবে বাইরে বেরিয়ে আসব" এই প্রশ্নটি তুলে ধরার চেষ্টা করছিলাম।
বাঞ্জার

উত্তর:


29

sshসংযোগ সমাপ্তি অব্যাহতি ক্রমটি ব্যবহার করে দেখুন ।

ইন sshঅধিবেশন, লিখুন ~.(ডট টিল্ড)। অক্ষরগুলি টাইপ করার সময় আপনি দেখতে পাবেন না, তবে সেশনটি অবিলম্বে শেষ হবে।

$ ~.
$ Connection to me.myhost.com closed.  

থেকে man 1 ssh

The supported escapes (assuming the default ‘~’) are:
 ~.      Disconnect.
 ~^Z     Background ssh.
 ~#      List forwarded connections.
 ~&      Background ssh at logout when waiting for forwarded 
         connection / X11 sessions to terminate.
 ~?      Display a list of escape characters.
 ~B      Send a BREAK to the remote system (only useful for SSH protocol
         version 2 and if the peer supports it).
 ~C      Open command line.  Currently this allows the addition of port 
         forwardings using the -L, -R and -D options (see above). It also
         allows the cancellation of existing remote port-forwardings using 
         -KR[bind_address:]port.  !command allows the user to execute a 
         local command if the PermitLocalCommand option is enabled in
         ssh_config(5).  Basic help is available, using the -h option.
 ~R      Request rekeying of the connection (only useful for SSH protocol 
         version 2 and if the peer supports it).

বেশ দারুন! কোনও উপকরণ ~.বা ফাংশন রাখার কোনও উপায় ? নামটি মনে রাখা সহজ করে দেওয়া exitall। এখন আমি অনেক উপায় জিজ্ঞাসা করছি :)। আমি কিছু জিনিস চেষ্টা করেছিলাম ~/.bashrcকিন্তু পেয়েছি -bash: ~.: command not found। আমি মনে করি বাশ এটিকে স্ট্রিং হিসাবে দেখেছে এবং কীবোর্ড থেকে সরাসরি আসার জন্য নয় escape
বাঞ্জার

আমি ctrl+dসমাধানটিও পছন্দ করি তবে এটি আমার প্রশ্নের উত্তর আরও সরাসরি দেয়। সবাইকে ধন্যবাদ.
বনজর

3
@ বাঞ্জার বাশ কখনই দেখে না ~., এটি sshনিজেই পরিচালনা করে।
গিলস 'অশুভ হওয়া বন্ধ করুন'

@ জিলস গেটচা, অর্থবোধ করে।
বান্জার

এবং পিটিটিওয়াই এটি করে এমন কোনও গ্যারান্টি নেই। সিএলআই sshক্লায়েন্টের এই কৌশলটি প্রয়োজন কারণ এটি সিএলআই। পুটি একটি জিইউআই অ্যাপ্লিকেশন এবং জিইউআইতে এই জিনিসটি করার আরও অনেক বেশি ব্যবহারকারী-বান্ধব উপায় রয়েছে।
অ্যালেক্সিয়াস

12

কেবল চাপুন CtrlDএবং এটি আপনাকে সিআরটিএল ধরে রাখার জন্য লগ আউট করবে এবং উইন্ডোটি অদৃশ্য না হওয়া পর্যন্ত "d" টিপবে।


1
দুঃখের বিষয়, এটি সর্বজনীনভাবে কাজ করে না। সম্পাদক বা অন্যান্য পূর্ণ স্ক্রীন সরঞ্জাম চালিত কোনও সেশন এড়িয়ে যাওয়ার সম্ভাবনা রয়েছে EOT। এমনকি bashএটি একটি কমান্ড লাইনের মাঝখানে উপেক্ষা করবে। এটি নিজে চেষ্টা করে দেখুন: একটি একক চিঠি টাইপ করুন এবং চেষ্টা করুন Ctrl-D
অ্যালেক্সিয়স

Ctrl + D কী করে, তার অর্থ এটি নিরাপদে বিদ্যমান বা কেবল প্রক্রিয়াটি মেরে ফেলেছে?
এএমবি

এটি নিরাপদে প্রস্থান করে। এটি একটি শেল শর্টকাট যা 'প্রস্থান' টাইপ এবং এন্টার টিপানোর মতোই।
জো

আসলে আমার (উইন্ডোজ গিট ব্যাশ ও উবুন্টু বাশ) ইস্যু ক logout
velis

হ্যাঁ, আমি বিশ্বাস করি প্রস্থানটি লগআউটকে কল দেয় কারণ এসএসএস সংযোগগুলি লগইন সেশন না হয়ে থাকে।
জো


2

আরেকটি পথ পরিষ্কার করা হয় functionজন্য ssh:

   function ssh(){ /usr/bin/ssh $@ ; exit ; } 

দুর্ভাগ্যক্রমে এটি দূরবর্তী সিস্টেমে কাজ শেষ করার পরে কনসোল থেকে সংযোগ এবং লগআউটটি সর্বদা বন্ধ করবে।

দ্রষ্টব্য, আপনার আপনার সমস্ত সার্ভারে এ জাতীয় ফাংশন করা দরকার, অন্যথায় এই হ্যাকটি কাজ করবে না। বিটিডব্লিউ আপনি সর্বদা ফাংশনটি rc / .bashrc বা hatever / .Wall_hell_you_use_rc এ রাখতে পারেন।

এটি দেখতে রাস্তাটির তুলনায় কিছুটা নোংরা হ্যাক লাগছে।


functionপসিক্স নয় - কেবল কীওয়ার্ডটি সরিয়ে ফেলুন, এবং আপনার $@সঠিকভাবে উদ্ধৃতি দেওয়া দরকার , বা আপনার যুক্তিগুলি শব্দ বিভাজনের পরে পাস হবে (খারাপ)।
ক্রিস ডাউন

2

অথবা আপনি অন্য হোস্টে ঝাঁপ দেওয়ার execসাথে সাথে নিজের শেল প্রক্রিয়াটি প্রতিস্থাপন করতে ব্যবহার করতে পারেন ssh:

SSH to host1 with PuTTY...
banjer@host1:~> #...doin some work...ooh! need to go check something on host8...
banjer@host1:~> exec ssh host8
banjer@host8:~> #...doin some work...OK time for lunch. lets close putty...
banjer@host8:~> exit
Putty closes.

5 স্তরের গভীরতা সুন্দর নয়, যেহেতু ট্র্যাফিক অন্যান্য সমস্ত সার্ভারগুলির মধ্য দিয়ে যাবে। সে কারণে আমি কেবল পটিটি বা এসএসএস (~।) হত্যার প্রস্তাব দিই না, যেহেতু (আপনি যা করেন তার উপর নির্ভর করে) এর ফলে সার্ভারগুলিতে অনাথ প্রক্রিয়া দেখা দিতে পারে।

চেষ্টা করার চেয়ে কম "অলস" হওয়া ভাল। Puttys শিরোনাম বারে ডান ক্লিক করুন একটি নতুন সেশন দ্রুত খোলার করে তোলে। আপনার যদি একটি "ডিফল্ট" সার্ভার থাকে এবং এটি থেকে 1 লাফ গ্রহণ করে, "ডুপ্লিকেট সেশন" বৈশিষ্ট্যটি খুব কার্যকর। বিশেষত যখন পবকি প্রমাণীকরণ ব্যবহার করা হয়।


2

আপনি যদি একটু স্ক্রিপ্টিং করতে আপত্তি করেন না তবে আপনি এটি করতে পারেন।

লিপি: myssh.sh

#!/bin/bash
ssh $1
if [ $? -eq 5 ]; then
 exit 5
fi

ডট কমান্ডের মাধ্যমে কল করুন:

$ . myssh user@server.com

আপনি যদি একটি স্তর থেকে প্রস্থান করতে চান:

$ exit

আপনি যদি সমস্ত প্রস্থান করতে চান:

$ exit 5

অবশ্যই, আপনি এটি প্রতিটি কম্পিউটারে অনুলিপি করতে পারেন যা আপনি কখনও এসএসএস করতে পারেন। এছাড়াও, কেবল ssh নামক একটি শেল ফাংশন সংজ্ঞায়িত করা কি সহজ হবে না? এটি পূর্ববর্তী সময় ইত্যাদি এড়াতে পারে
ইথারফিশ

-1

পুট্টি টার্মিনাল উইন্ডোতে টাইপ লগআউটটি আমার জন্য এটি করে:

richard@forevermore:~ > logout

Ssh সংযোগটি বন্ধ করে দেয় এবং পুট্টি অ্যাপ্লিকেশনটি প্রস্থান করে।


আমি বিশ্বাস করি আপনি প্রশ্নটি সঠিকভাবে পড়েন নি। ওপি করে ssh host1এবং তারপরেও host1তা করে ssh host8। এই মুহুর্তে একটি তারা ইতিমধ্যে জানে logoutএমন exitকমান্ডের মতো একই কাজ করবে - বাইরে বেরিয়ে এসে এটিকে host8আবার ফিরিয়ে দিন host1
জি-ম্যান

ঠিক আছে, আমি দেখছি আমার খারাপ।
রিচার্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.