සම්බන්ධිත සියලුම SSH සැසි ලැයිස්තුගත කරන්න?


201

මම යන්තම් SSH'd root බවට පත් කර, පසුව SSH නැවත එම යන්ත්‍රයේම root බවට පත් කරමි. ඒ නිසා මගේ දුරස්ථ යන්ත්‍රයේ SSH'd දෙකම root කිරීමට කවුළු දෙකක් තිබේ.

කවචයේ සිට, මෙම සැසි දෙකේ ලැයිස්තුවක් මා දකින්නේ කෙසේද?

Answers:


208

whoහෝ w; who -aඅමතර තොරතුරු සඳහා.

මෙම විධානයන් ටර්මිනල් උපාංගයක සියලුම පිවිසුම් සැසි පෙන්වයි. තීරුවේ ptsපෙන්වා ඇති පරිදි SSH සැසියක් ව්‍යාජ පර්යන්ත වහලෙකු ( ) මත වනු ඇත TTY, නමුත් සියලුම pts සම්බන්ධතා SSH සැසි නොවේ. උදාහරණයක් වශයෙන්, එවැනි ව්යාජ පර්යන්තය උපාංගය නිර්මාණය වැඩසටහන් xtermහෝ screenලෙස පෙන්වනු ඇත pts. තීරුවේ ඇති විවිධ අගයන් පිළිබඳ වඩා හොඳ විස්තරයක් සඳහා pts සහ tty අතර වෙනස බලන්න TTY. තවද, SFTP සැසි ෂෙල් පිවිසුම් සැසි නොවන බැවින් මෙම ප්‍රවේශය SFTP සැසියකට ප්‍රවේශ වී ඇති කිසිවෙකුට නොපෙන්වයි.

සියලුම SSH සැසි පැහැදිලිව පෙන්වීමට මම ක්‍රමයක් නොදනිමි. ඔබ පිවිසුම් තොරතුරු කියවීමෙන් ඔබට මෙම තොරතුරු සහ ඒවයින් නිකුත් utmp/ wtmpවැනි මෙවලමක් හරහා last, wහෝ whoමම විස්තර තියෙනවා වගේ, හෝ වරාය 22 දා විවෘත tcp සම්බන්ධතා සොයා ගැනීමට ඔවුන්ගේ පිළිතුර විස්තර @sebelk වැනි ජාල මෙවලම් භාවිතයෙන් (හෝ ඕනෑම තැනක, ඔබේ SSH ඩීමන් (ය) යනු / සවන් දීමයි).

ඔබට ගත හැකි තුන්වන ප්‍රවේශය නම්, SSH ඩීමන් වෙතින් ලොග් ප්‍රතිදානය විග්‍රහ කිරීමයි. ඔබගේ මෙහෙයුම් පද්ධතිය බෙදා හැරීම, SSH බෙදා හැරීම, වින්‍යාසය සහ යනාදිය මත පදනම්ව, ඔබේ ලොග් ප්‍රතිදානය විවිධ ස්ථාන ගණනාවක තිබිය හැකිය. RHEL 6 පෙට්ටියක, මට ලොග් හමු විය /var/log/sshd.log. RHEL 7 පෙට්ටියක සහ ආරුක්කු ලිනක්ස් පෙට්ටියක, ල .ු journalctl -u sshd-සටහන් බැලීමට මට භාවිතා කිරීමට අවශ්‍ය විය . සමහර පද්ධති මඟින් SSH ලොග් syslog වෙත ප්‍රතිදානය කළ හැකිය. ඔබගේ ල logs ු-සටහන් මෙම ස්ථානවල හෝ වෙනත් තැනක තිබිය හැකිය. ඔබට පෙනෙන දේවල නියැදියක් මෙන්න:

[myhost ~]% grep hendrenj /var/log/sshd.log | 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

සැසි විවෘතව හා වැසෙන විට, සැසිය අයිති කාටද, පරිශීලකයා සම්බන්ධ වන්නේ කොතැනින්ද සහ තවත් බොහෝ දේ ලොග් පෙන්වයි. කෙසේ වෙතත්, ඔබට මෙය සරල, මිනිස් කියවිය හැකි සිදුවීම් ලොගයකින් දැනට ක්‍රියාකාරී සැසි ලැයිස්තුවකට ලබා ගැනීමට අවශ්‍ය නම් ඔබට බොහෝ විග්‍රහයන් කිරීමට සිදුවනු ඇත, එය බොහෝ විට නිවැරදි ලැයිස්තුවක් නොවනු ඇත කුමන සැසි තවමත් සක්‍රියද යන්න තීරණය කිරීමට ප්‍රමාණවත් තොරතුරු ල logs ු-සටහන් වල අඩංගු නොවන බැවින් ඔබ විග්‍රහ කිරීම අවසන් කර ඇත - ඔබ අත්‍යවශ්‍යයෙන්ම අනුමාන කරයි. මෙම ල logs ු-සටහන් භාවිතා කිරීමෙන් ඔබට ලැබෙන එකම වාසිය නම්, අනෙක් ක්‍රම මෙන් තත්පරයට ප්‍රභවයක් හරහා නොව තොරතුරු කෙලින්ම SSHD වෙතින් පැමිණීමයි.

භාවිතා කිරීම නිර්දේශ කරමි w. බොහෝ විට, මෙය ඔබට අවශ්‍ය තොරතුරු ලබා ගනී.



ස්පර්ශක සම්බන්ධ ගැටලුවක් සොයමින් සිටියදී මෙය හමු විය. කමක් නැහැ. මෙය ඕනෑම ස්ටැක් වෙබ් අඩවියක මා දුටු හොඳම පිළිතුරු වලින් එකකි! මෙම විශේෂිත ප්‍රදේශය ගැන වඩා හොඳ ටොන් එකක් මම දැන් දනිමි (වඩා හොඳ වචනයක් නොමැති නිසා). සංස්කරණය කරන්න: ස්තූතියි!
jscharf

119

පහත දැක්වෙන විධානය සමඟ සෑම සැසියක්ම ඔබට දැක ගත හැකිය:

[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:

4
ඔබට ස්තුතියි; මෙම පිළිතුර ඉහළ පිළිතුරට වඩා හොඳය, එය ලැයිස්තු ගත කරන්නේ කවචයකට ප්‍රවේශ වී ඇති පරිශීලකයින් පමණි. මෙම විසඳුම SFTP භාවිතා කරන්නන් ද සොයා ගනී.
හේඩන් ෂිෆ්

1
වර්තමානයේ බොහෝ පෙට්ටි වල ඔබට භාවිතා කළ හැකියpgrep -ai sshd
ccpizza

@ccpizza: pgrep: invalid option -- 'i'උබුන්ටු 14.04 හි.
මොනිකා නැවත

2
@ මාටින්ස්ක්‍රෝඩර්: -iලබා ගත හැක්කේ මැක් / බීඑස්ඩී රස මත පමණි. උබුන්ටු මත ඔබට භාවිතා කළ හැකිය pgrep -af ssd. වැඩි විස්තර සඳහා serverfault.com/a/883270/116777 බලන්න
ccpizza

AyHaydenSchiff හා සමානවම මට ෂෙල් එකක් නොමැතිව වරාය ඉදිරියට යැවීම සඳහා විවෘත කර ඇත්තේ SSH උමගක් පමණක් ඇති පරිශීලකයින් සොයා ගැනීමටය. මෙය උදව් විය!
ටොබියාස් කේ.


8

සරල යොමු කිරීම සඳහා එකතු කරන ලදි.

ඔබ ව්‍යාජ කවචයක සිටී නම් (උදාහරණ: / 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)

Bash globals සමඟ කටයුතු කරන පෙර පිළිතුරු පුළුල් කිරීම. SECONDSගෝලීය යොමු කිරීම සඳහා මම යෝජනා කළ හැකිය. ඔබට මෙය හරහා භාවිතා කළ හැකිය echo $SECONDS, එමඟින් එය වටහාගත් සම්බන්ධතාවයේ සිට කාලය පෙන්වයි
NerdOfCode

මෙය දැනට සක්‍රිය සැසිය සඳහා තොරතුරු පෙන්වනු ඇත - ඔබ ටයිප් කරන එක. නමුත් දැනට සම්බන්ධ වී ඇති සියලුම සැසි ලැයිස්තුගත කරන්නේ කෙසේදැයි ප්‍රශ්නය අසයි .
ජී-මෑන් පවසන්නේ 'මොනිකා නැවත

8

@ සෙබෙල්ක්ගේ පිළිතුර පුළුල් කිරීම:

භාවිතා කරන විසඳුම netstatහොඳ එකක් නමුත් මූල වරප්‍රසාද අවශ්‍ය වේ. ඊට අමතරව, net-toolsපැකේජය (සපයන netstat) සමහර නව ලිනක්ස් ඩිස්ට්‍රෝ හි ( https://dougvitale.wordpress.com/2011/12/21/deprecated-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

2

ඔයාට පාවිච්චි කරන්න පුළුවන්

last | head

මෑතකදී පද්ධතියට පිවිසියේ කවුරුන්දැයි බැලීමට මම මෙය මගේ .login පිටපතෙහි වසර ගණනාවක් තිස්සේ භාවිතා කළෙමි. ඔබගේ පිවිසුම භාවිතා කරමින් යමෙකු පද්ධතියේ සිටී දැයි බැලීමට එය දුර්වල-ආරක්ෂක උපාංගයකි.


2
... නමුත් එය අනිවාර්යයෙන්ම ක්‍රියාකාරී සැසි ලැයිස්තුවක් නොවනු ඇත (මෙම ප්‍රශ්නය කුමක් ද යන්න). පුරනය වීමේ ක්‍රියාකාරකම් මත පදනම්ව, ඔබ ධාවනය කළ සැසිය පවා lastලැයිස්තුගත නොවනු ඇත.
මුරු

1
"last -p now" වර්තමාන සියලුම ssh සැසි ලැයිස්තුගත කරයි.
ඕ විලියම්ස්

OW ජොවිලියම්ස් lastආධාරක අනුවාදය -pකුමක්ද? එය කරන්නේ කුමක්ද?
mwfearnley

wmwfearnley අනුවාදයේ "last from util-linux 2.31.1"එය නිසැකවම ඇත.
V.7

0

මම ඉහත සියළු විධානයන් පාහේ ක්‍රියාත්මක කළ අතර දැනට පිවිසී ඇති පරිශීලකයින් ssh හරහා සොයා ගැනීමට හොඳම ක්‍රමය යැයි මම සිතමි

last | grep "still logged in"

හා

who -a
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.