『神器点滴之ssh』如何优雅的退出ssh

『神器点滴之ssh』如何优雅的退出ssh,第1张

在用ssh干活儿的时候,总会有各种各样的原因导致服务器连接中断,这时候ssh就卡在那里,只能强制关闭终端窗口来结束ssh任务或者等待pipe broken。

这里有一个更加优雅的退出ssh客户端的方法:

是的,在一行的开始,输入『~』跟着『.』就可以结束ssh了。

如果不在一行的开始,这个命令是无效的,这个时候可以先按一下回车,再输入上面的命令。

        在实际运用中在当前服务器执行命令后,需要在另一台服务器继续执行某些命令,分开去到另一台服务器执行也是比较麻烦的,因此整理下集中执行的方式

1、首先配置ssh免密操作

Linux 下实现SSH互信: https://www.jianshu.com/p/2456d98aa607

2、简单命令

ssh root@192.168.1.1 "cd /var/liblscd "

2.1 使用时注意,双引号必须有。若没加双引号,第二条及之后的命令会在本地执行

2.2 分号是将两条语句间隔开

2.3 单双引的区别:单引号不会解析值,是什么就传什么;双引号会解析值,将解析结果传过去

3、多条命令

     ssh root@192.168.1.1<<reallssh

      cd /var/lib/test

      tar -zxvf api.com.tar.gz

      ......

      exit

      reallssh

3.1 命令写在 << reallssh(开始) 至 reallssh(结束) 之间

3.2 reallssh可自己定义为其他形式

3.3 在结束前加上exit退出远程

4、可能遇到的问题

问题:远程登录主机时出现Pseudo-terminal will not be allocated because stdin is not a terminal. 错误

解决方案:字面意思是伪终端将无法分配,因为标准输入不是终端。

所以需要增加-t -t参数来强制伪终端分配,即使标准输入不是终端。

to force pseudo-tty allocation even if stdin isn’t a terminal.

参考样例如下:

ssh -t -t user1@192.168.1.1 -p 22

--------------------------------------------------------------------------------

参考:https://blog.csdn.net/jinking01/article/details/84386769

SSH -qTfnN -D port remotehost(用证书验证就直接主机名,没用的还要加上用户名密码)

-q Quiet mode. 安静模式,忽略一切对话和错误提示。

-T Disable pseudo-tty allocation. 不占用 shell 了。

-f Requests ssh to go to background just before command execution. 后台运行,并推荐加上 -n 参数。

-n Redirects stdin from /dev/null (actually, prevents reading from stdin). -f 推荐的,不加这条参数应该也行。

-N Do not execute a remote command. 不执行远程命令,专为端口转发度身打造。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/360067.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存