【问题标题】:Close SSH connection and change IP address at the same time关闭 SSH 连接并同时更改 IP 地址
【发布时间】:2017-05-20 01:47:54
【问题描述】:

我使用 C 代码在 Linux 中编写了一个 kill_all_ssh CLI 程序,并使用安全 shell 连接到 ssh 服务器。当我发出 CLI 命令关闭所有 ssh 会话时,我可以得到一个提示说 ssh 会话已关闭,如下所示:

cc@server:~$ ./cli-kill-all-ssh
Connection to 192.168.1.102 closed by remote host.
Connection to 192.168.1.102 closed.

我也有一个可以改变ssh服务器IP地址的程序,但是当我改变ssh服务器的IP地址时,就失去了与服务器的连接,ssh控制台挂了,没有任何反应。

我尝试 fork 一个子进程来杀死所有 ssh 会话并同时更改父进程中的 IP 地址,但它不起作用。

谁能给我一个提示?

提前致谢!

【问题讨论】:

    标签: c linux ssh ip


    【解决方案1】:

    如果您想终止所有 ssh 连接并更改服务器的 IP,请将两个命令放在一个脚本中并使用 nohup 命令运行,这样终止 ssh 连接不会终止脚本。
    nohup /path/to/script/killscript.sh &
    可能是你需要的。

    【讨论】:

    • 感谢您的建议,我会试一试并给您我的测试结果。
    • 我按照你的信息找到了一些关于在 C 代码中实现 nohup 的链接stackoverflow.com/questions/10985544/…
    • 我发现更改IP地址并杀死所有ssh会话命令不能被守护。如果你对这两个命令进行守护,它们都不能正常工作。
    • 不确定你所说的守护进程是什么意思,因为通常守护进程是在后台运行的服务,这不是我们讨论的内容。
    • 不,我不工作。我将两个命令放在一个脚本中,并按照您的建议运行。 IP 地址已更改,但 ssh 控制台挂起而没有响应。一分钟后,控制台回复packet_write_wait: Connection to 192.168.1.102: Broken pipe
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    • 2022-01-22
    • 2013-02-21
    • 2015-12-24
    • 2017-04-13
    相关资源
    最近更新 更多