使用 keygen 关闭 ssh 连接

使用 keygen 关闭 ssh 连接

我已经使用 keygen 与远程服务器建立了 ssh 连接并建立了端口转发,代码如下:

ssh-keygen -t rsassh-copy-id -i ~/.ssh/id_rsa.pub root@IP

ssh -N -R 0.0.0.0:53407:localhost:53407 root@IP

现在我需要结束这个,但我的端口 53407 仍然被 ssh 使用,我该如何结束这个连接?

lsof -i -P -n | grep LISTEN 的返回

我删除了端口转发服务,但什么也没改变

答案1

  • 在您启动的“死”终端中,ssh -N ...您只需按下即可Ctrlc取消该ssh过程。
  • 如果您将其发送到后台,请将作业返回到前台以向其发送^C
# At the client system:

# To find it:
jobs
[1]+  Running                 ssh -N -R53407:localhost:53407 user@server &

# To bring to foreground:
fg 1

# To cancel:
^c
  • 否则,在任务列表中找到 ssh 进程,获取其进程 id (PID) 并执行:
kill <PID>

像这样使用kill不是刺客在行动但更像是一个好心的邮递员,把信息传递ssh正确地退出。——因此给 ssh 几秒钟时间来完成退出工作。


最好通过以下方式检查开放端口ss

# At the remote system:
sudo ss -tanp | grep "sshd"

当您在本地服务器终止 ssh 连接时,这也会有所帮助:

# Alternatively at the server:
sudo ss -tanp | grep ":53407"

LISTEN  0       128                 127.0.0.1:53407     0.0.0.0:*       users:(("sshd",pid=247750,fd=9))                                               
LISTEN  0       128                     [::1]:53407        [::]:*       users:(("sshd",pid=247750,fd=8))                                               

# Get the PID from the output and send the kill command:
kill 247750

注意:其他 sshd 连接不会退出,因为sshd每个连接都会分叉,因此每个连接都使用不同的 PID。

相关内容