উত্তর:
who
বা w
; who -a
অতিরিক্ত তথ্যের জন্য।
এই কমান্ডগুলি কেবলমাত্র টার্মিনাল ডিভাইসে সমস্ত লগইন সেশন দেখায়। একটি এসএসএইচ অধিবেশন সিউডো-টার্মিনাল ক্রীতদাসে থাকবে ( pts
যেমনটি TTY
কলামে দেখানো হয়েছে , তবে সমস্ত পিটিএস সংযোগগুলি এসএসএইচ সেশন নয়। উদাহরণস্বরূপ, প্রোগ্রাম এর মত সিউডো-টার্মিনাল ডিভাইস তৈরি xterm
বা screen
দেখাবেন pts
। কলামে পাওয়া বিভিন্ন মানগুলির আরও ভাল বর্ণনার জন্য pts এবং tty এর মধ্যে পার্থক্য দেখুন TTY
। তদ্ব্যতীত, এসএফটিপি সেশনগুলি শেল লগইন সেশন নয় বলে এই পদ্ধতিটি কোনও এসএফটিপি সেশনে লগ ইন করে এমন কাউকে দেখাবে না।
স্পষ্টভাবে সমস্ত এসএসএইচ সেশন দেখানোর কোনও উপায় আমি জানি না। আপনি এর থেকে লগ-ইন তথ্য পড়ার মাধ্যমে এই তথ্য আবিষ্কার করতে পারেন utmp
/ wtmp
একটি টুল মাধ্যমে মত last
, w
অথবা who
পোর্ট 22 (অথবা খোলা TCP সংযোগগুলির যেখানেই থাকুন না কেন আপনার SSH এটি মত আমি শুধু বর্ণনা করেছি, অথবা তাদের উত্তর বর্ণিত @sebelk মত নেটওয়ার্কিং টুলস ব্যবহার করে ডিমন (গুলি) শুনছেন / করছেন)।
তৃতীয় পদ্ধতিটি আপনি নিতে পারেন এসএসএইচ ডেমন থেকে লগ আউটপুট পার্স করা। আপনার ওএস বিতরণ, এসএসএইচ বিতরণ, কনফিগারেশন এবং এর উপর নির্ভর করে আপনার লগ আউটপুট বিভিন্ন স্থানে থাকতে পারে। একটি আরএইচইএল 6 বাক্সে, আমি লগ ইনগুলি পেয়েছি /var/log/sshd.log
। একটি আরএইচইএল 7 বাক্সে এবং একটি আর্চ লিনাক্স বাক্সেও journalctl -u sshd
লগগুলি দেখতে আমার প্রয়োজন । কিছু সিস্টেমে এসএসএইচ লগগুলি সিলেগ-এ আউটপুট করতে পারে। আপনার লগগুলি এই জায়গাগুলিতে বা অন্য কোথাও হতে পারে। আপনি যা দেখতে পান তার একটি নমুনা এখানে:
[myhost ~]% cat /var/log/sshd.log | grep hendrenj | grep session
May 1 15:57:11 myhost sshd[34427]: pam_unix(sshd:session): session opened for user hendrenj by (uid=0)
May 1 16:16:13 myhost sshd[34427]: pam_unix(sshd:session): session closed for user hendrenj
May 5 14:27:09 myhost sshd[43553]: pam_unix(sshd:session): session opened for user hendrenj by (uid=0)
May 5 18:23:41 myhost sshd[43553]: pam_unix(sshd:session): session closed for user hendrenj
লগগুলি প্রদর্শন করে যখন সেশনগুলি খোলা হয় এবং বন্ধ হয়, সেশনটি কাদের অন্তর্ভুক্ত, ব্যবহারকারী কোথা থেকে সংযোগ করছেন এবং আরও অনেক কিছু। যাইহোক, আপনি যদি বর্তমানে একটি সক্রিয়, মানব-পঠনযোগ্য ইভেন্টের ইভেন্ট থেকে সক্রিয় সেশনের তালিকায় এটি পেতে চান তবে আপনাকে অনেকগুলি পার্সিং করতে হবে, এবং এটি সম্ভবত সঠিক তালিকা হতে পারে না যখন আপনি পার্সিং সম্পন্ন করেছেন, যেহেতু লগগুলিতে আসলে কোন সেশনগুলি এখনও সক্রিয় তা নির্ধারণ করার জন্য পর্যাপ্ত তথ্য থাকে না - আপনি মূলত কেবল অনুমান করছেন। এই লগগুলি ব্যবহার করে আপনি যে লাভটি করেছেন তা হ'ল তথ্যগুলি অন্যান্য পদ্ধতির মতো সেকেন্ডহ্যান্ড উত্সের পরিবর্তে এসএসএইচডি থেকে সরাসরি আসে।
আমি শুধু ব্যবহার করার পরামর্শ দিচ্ছি w
। বেশিরভাগ সময়, এটি আপনার পছন্দসই তথ্য পাবেন।
আপনি নিম্নলিখিত কমান্ড সহ প্রতিটি সেশন ssh দেখতে পাবেন:
[root@router ~]# netstat -tnpa | grep 'ESTABLISHED.*sshd'
tcp 0 0 192.168.1.136:22 192.168.1.147:45852 ESTABLISHED 1341/sshd
tcp 0 0 192.168.1.136:22 192.168.1.147:45858 ESTABLISHED 1360/sshd
ও সম্ভবত এটি দরকারী হতে পারে:
[root@router ~]# ps auxwww | grep sshd:
root 1341 0.0 0.4 97940 3952 ? Ss 20:31 0:00 sshd: root@pts/0
root 1360 0.0 0.5 97940 4056 ? Ss 20:32 0:00 sshd: root@pts/1
root 1397 0.0 0.1 105300 888 pts/0 S+ 20:37 0:00 grep sshd:
pgrep -ai sshd
pgrep: invalid option -- 'i'
উবুন্টুতে 14.04 এ।
-i
কেবলমাত্র ম্যাক / বিএসডি স্বাদে উপলভ্য। উবুন্টুতে আপনি ব্যবহার করতে পারেন pgrep -af ssd
। বিস্তারিত জানার জন্য সার্ভারফল্ট করুন
আপনি ব্যবহার করতে পারেন
ps ax | grep sshd
সাধারণ রেফারেন্সের জন্য যুক্ত করা হয়েছে।
আপনি যদি ছদ্ম শেলটিতে থাকেন (উদাহরণ: / dev / pts / 0) সরলতম উপায়গুলির মধ্যে একটি হ'ল:
[user1@host ~]$ echo $SSH_CONNECTION
এটি ফিরে আসা উচিত: আপনার আইপি এবং পোর্ট এবং আইপি আপনার সংযুক্ত এবং পোর্ট
192.168.0.13 50473 192.168.0.22 22
আপনি ব্যবহার করে tty
বা who
( w
) থেকে কিছু তথ্য পেতে পারেন : (সম্পাদনা: আমি দেখতে পাচ্ছি এটি এখন অন্য পোস্টে উপরে তালিকাবদ্ধ)
[user1@host ~]$ who
user1 tty1 2018-01-03 18:43
user2 pts/0 2018-01-03 18:44 (192.168.0.13)
SECONDS
বিশ্বব্যাপী উল্লেখ করার পরামর্শ দিতে পারে । আপনি echo $SECONDS
এটির মাধ্যমে এটি ব্যবহার করতে পারেন যা অনুমিত সংযোগের পরে এটি সময়ের পরিমাণ প্রদর্শন করে
@ সেবেলকের উত্তরে সম্প্রসারণ:
সমাধানটি ব্যবহার netstat
করা ভাল তবে মূলের সুবিধার প্রয়োজন। এছাড়াও, net-tools
প্যাকেজটি (যা সরবরাহ করে netstat
) কিছু নতুন লিনাক্স ডিস্ট্রোর ( https://dougvitale.wordpress.com/2011/12/21/drerecated-linux-networking-commands-and-their-replacements/ ) এ অবচয় করা হয়েছিল ।
বিকল্প বিকল্প হ'ল netstat
, এর জন্য প্রতিস্থাপনটি ব্যবহার করা ss
। উদাহরণস্বরূপ (মনে রাখবেন যে আপনার আর মূলের দরকার নেই):
user@router:~# ss | grep ssh
tcp ESTAB 0 0 192.168.1.136:ssh 192.168.1.147:37620
tcp ESTAB 0 0 192.168.1.136:ssh 192.168.1.147:37628
তুমি ব্যবহার করতে পার
last | head
কে সম্প্রতি সিস্টেমে লগইন করেছে তা দেখার জন্য আমি এটি আমার লগিন স্ক্রিপ্টে কয়েক বছর ধরে ব্যবহার করেছি। আপনার লগইনটি ব্যবহার করে কেউ সিস্টেমে রয়েছে কিনা তা দেখার জন্য এটি একটি দুর্বল-ম্যান-সুরক্ষা ডিভাইস ছিল।
last
তা তালিকাভুক্ত নাও হতে পারে।
last
সমর্থন করে -p
? এটার কাজ কি?
"last from util-linux 2.31.1"
এটি নিশ্চিতভাবে আছে।
who -a