Linux отключить пользователя ssh

Which is the most gentle way to end a ssh session [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.

This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.

  • Bash built-in command exit $ exit
  • Bash built-in command logout $ logout
  • Keyboard shortcut Control + D
  • External command fuser $ fuser -k /dev/pts/[n]
  • Get sshd process id for current user then kill this process

Can anyone explain what’s the difference between these commands? Personally Ctrl + D is my favorite one, because it’s the fastest one.

2 Answers 2

CTRL + d causes a logout . logout causes an exit . exit on its own is different only because it allows you to specify a non-zero exit code in case it’s needed. So the first 3 options are equivalent.

Killing ssh, or the terminal will just break the connection. I’m not sure what you’re going for with «gentle», but that is not it.

Assuming that by gentle you meant closing connections without errors on either side, just keep using CTRL + d

I think there is another «gentle» way to exit. By using escaping character.

In this post shows the way to do it, just dig it.

Please provide additional details in your answer. As it’s currently written, it’s hard to understand your solution.

In my case, it is a router ssh connection, which shows a full screen selective program and no function as exit. Maybe it’s a good time of using escape character?

Источник

Как выкинуть из системы пользователя по SSH в Linux

Favorite

Добавить в избранное

Главное меню » Linux » Как выкинуть из системы пользователя по SSH в Linux

Как выкинуть из системы пользователя по SSH в Linux

Е сли вы вошли в удаленную систему Linux через SSH, вам просто нужно использовать команду exit для выхода из SSH.

Читайте также:  Linux bible 10th edition pdf

Отлично. Но что, если вы хотите отключить какого-либо другого пользователя с помощью SSH-соединения?

В этой быстрой подсказке мы покажем вам, как вы можете выгнать любого пользователя из системы.

Выкинуть пользователя из сеанса SSH

Сначала проверьте список пользователей, вошедших в систему на вашем сервере Linux. Это можно сделать разными способами. Мы будем использовать команду who с опцией -u. Этот параметр отображает идентификатор процесса сеанса оболочки входа пользователей.

root@localhost:~# who -u andreyex pts/0 2021-04-06 16:19 00:01 27382 (217.043.088.107) alex pts/1 2021-04-06 16:20 . 27583 (217.043.088.107) root pts/2 2021-04-06 16:21 . 27654 (217.043.088.107)

Теперь представьте, что мы хотим прекратить использование сеанса alex в SSH. Идентификатор процесса его сеанса оболочки — 27583. Если вы завершите сеанс оболочки входа в систему, пользователь будет отключен.

Для этого вы можете использовать команду kill для отправки сигнала SIGHUP. Этот сигнал используется для сообщения о том, что терминал пользователя отключен. Он также эффективно отключает все процессы в сеансе от управляющего терминала.

Конечно, чтобы выполнить такое действие, вы должны быть пользователем root или sudo.

Есть несколько вещей, которые вам следует знать и делать.

Отправить сообщение перед завершением сеанса

Это хорошая идея, чтобы проинформировать конечного пользователя, прежде чем вы завершите его/ее сеанс. Вы можете использовать команду записи, чтобы быстро отправить сообщение пользователю следующим образом:

echo "Your session will end in 2 minutes. Save your work!" | write alex pts/2

Принудительно завершить сеанс SSH, если SIGNHUP не работает

Если сигнал SIGHUP не работает, отправьте сигнал SIGKILL.

Вы также можете выйти из выбранного сеанса пользователя, если у пользователя более одного сеанса SSH

Если один и тот же пользователь входит в систему из более чем одной системы или терминала, это влияет только на сеанс, который вы убиваете. Это не удалит пользователя из всех сеансов.

Читать Docker/Docker Compose/Docker Run host network vs bridge network (как настроить режим моста/хоста для docker, с помощью команды run или docker compose)

Это тот случай, когда ваш сеанс SSH зависает по какой-то причине, например, при отключении сети. Вы можете убить терминал и открыть еще один сеанс SSH с нового терминала, но теперь вы видите, что дважды вошли в систему.

В таком случае вы можете закрыть сеанс, который больше не должен быть активным.

Вы можете определить, какого пользователя начать, по времени входа в журнал, который виден в выходных данных whoкоманды. Не волнуйтесь, в худшем случае вы откажетесь от текущего сеанса. Но тогда вы можете войти снова.

Надеемся, этот быстрый совет помог вам выйти из сеанса SSH в Linux. Ваши вопросы и предложения приветствуются.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Читайте также:  Linux connect to tcp port

How to log off an user from SSH? [duplicate]

I am able to see logged-in users via the who or last command. How can I log off a particular user who login through SSH?

2 Answers 2

kill its ssh session. Check them by

Second column gives you the PID. Then,

ps: using the -9 flag will prevent things from stopping «graciously».

Since the signal is being sent only to the sshd, the -9 will only prevent it from cleaning up properly, which may involve killing jobs the user was running in the ssh session, so should be avoided.

Are you sure? When a I talked about the -9 I was referring to the graciously stop of the SSHD terminal process. The running apps will be injured no matter the flag used. For example, try something like killing a user session when he is editing some file in Vim or Vi. No matter what flag, or even if any flag was used, the swap file will remain on FS and the user will be noticed about it whenever he tries to edit the file again.

@psusi BTW, I assumed that the OP was aware that is harmful to drop someones session, as some essential tasks may be interrupted or completely prevented from running.

you mean backup file, not swap file, and yes, no matter how you kill the process, files on disk are not affected, and most editors frequently write a backup file just in case. Anything typed since the last backup was saved will be lost if killed with -9, but not otherwise since the editor has a chance to save. Killing sshd with -9 is not a good idea since it prevents it from doing important cleanup tasks, like removing the login entry from wtmp so they disappear from w[ho].

@psusi No, no, I mean swap files. This is how Vim and Vi call them. Nevertheless, in fault tolerance area, we call «gracious stop» or «gracious halt» when a system has the opportunity to execute all its cleanup routines, like the ones you enumerated for sshd.

Источник

How to Log Out a User Off SSH in Linux

A few quick tips about logging out yourself or some other user from SSH session.

If you are logged into a remote Linux system via SSH, you just need to use the exit command to log out of SSH.

That’s fine. But what if you want to log out some other user from the SSH connection?

In this quick tip, I’ll show you how you can kick any user off the system.

Читайте также:  Bin чем открыть линукс

Log out a user from SSH session

First, check the list of logged-in users to your Linux server. There are various ways to do that. I’ll use the who command with option -u . This option displays the process ID of the login shell session of the users.

[email protected]:~# who -u abhishek pts/0 2021-04-05 09:25 00:01 31970 (223.180.180.107) prakash pts/1 2021-04-05 09:26 . 32004 (223.180.180.107) root pts/2 2021-04-05 09:26 . 32039 (223.180.180.107)

Now imagine that I want to kick use prakash from the SSH session. The process ID of its shell session is 32004. If you kill the login shell session, the user will be disconnected.

To do that, you can use kill command to send a SIGHUP signal. This signal is used to report that the user’s terminal is disconnected. It also effectively disconnects all processes in the session from the controlling terminal.

Of course, to perform such an action, you need to be either root or a sudo user.

There are a few things you should know and do.

Send a message before terminating the session

It’s a good idea to inform the end-user before you terminate his/her session. You can use the write command to quickly drop a message to the user in this manner:

echo "Your session will end in 2 minutes. Save your work!" | write prakash pts/2 

Force kill a SSH session if SIGNHUP doesn’t work

If the SIGHUP signal does not work, then send SIGKILL signal.

You can also log out a user from selected session if the user has more than one SSH session

If the same user is logged in from more than one system or terminal, only the session that you are killing is impacted. It won’t kick the user from all the sessions.

This is the case when your SSH session hangs up for some reason like network disconnection. You can kill the terminal and open another SSH session from a new terminal but now you see yourself logged into the system twice.

In such case, you can close the session which should not be active anymore.

You can identify which user to kick off from the timing of the log in which is visible in the output of the who command. Don’t worry, the worst case would be that you kick off yourself from your current session. But then you can log in again.

Kick user off ssh session

I hope this quick tip helped you to log out a user from SSH session in Linux. Your questions and suggestions are welcome.

Источник

Оцените статью
Adblock
detector