返回顶部
首页 > 资讯 > 操作系统 >Linux SSH实用技巧具体有哪些
  • 146
分享到

Linux SSH实用技巧具体有哪些

2023-06-16 04:06:22 146人浏览 安东尼
摘要

linux ssh实用技巧具体有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。现在远程服务器管理最常用的方式要数SSH(Secure  shell了)。SSH

linux ssh实用技巧具体有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

现在远程服务器管理最常用的方式要数SSH(Secure  shell了)。SSH以其最简便的方式连接连接,并对通讯过程进行加密。基于所使用的算法,一般认为窃听通过ssh通讯基本上不可能。SSH使用的客户端,在Linux或Unix上一般是直接用ssh命令,在windows  上在Cygwin或WSL等类Linux环境下也支持。Windows系统会用很多客户端软件,比如SecureCRT  Xshell,我使用的是免费开源的Putty。

使用ssh有很多技巧,有些非常简单,有些则超出了一个终端应用的范畴。我们知道ssh可以安全地传输文件(scp),也可以通过ssh挂载远程文件系统;可以使用ssh浏览器中安全遨游网络,还可以使用ssh隧道加密传输流量。给大家介绍一下SSH的一些技巧。我们假设读者了解一些SSH基础知识:用scp和sftp用于文件复制,ssh-copy-id用于设置无密码证书登录,当然你不知道也没关系,问下度娘10分钟内就可以搞定。

SSH别名

ssh命令行上有很多选项要记住,比如IP、端口、用户名、私钥(如果不是标准位置和名字的证书,或者多个证书时候),但是实际上是可以偷懒的,甚至IP,端口我们都不需要记,只需要在~/.ssh  /config文件中,可以创建一个别名,设置后这些选项即可。例如,假设要连接到一台主机,我们给他设置别名为ChonGChong:

Host chongchong  HostName ijz.me  Port 1234  User cc  IdentityFile ~/.ssh/chongchong_id  ForwardX11 yes  Compression yes  tcpKeepAlive yes

可以根据需要使用任意多个别名。至于添加多个"Host"配置行即可。可以在一个Host语句中添加多个别名。随后的选项可以用于任何一个别名。

配置后我们只需连接ssh congchong,就会启用所有配置的选项。

当然,如果使用的是Putty客户端,主要选项都在其配置的Session面板和SSH面板中。可能没有太多选择,但是可以尝试一些。

Linux SSH实用技巧具体有哪些

几个有用的配置项

1. ControlMaster

有一组非常有用的SSH配置项,包括设置master控制文件。例如:

ControlMaster auto  ControlPath ~/.ssh/master-%r@%h:%p

这可以使连接同一主机的多个会话共享一个TCP套接字。因为设置安全套接字需要花费一些时间,如果在两个主机之间进行多个会话,该设置加快速度。可以使用配置文件中的Host  *项对所有主机设置。还可以将其用于全局选项。

需要注意的是,如果通过多个连接传输大量数据,则ControlMaster配置可能会影响传输,这时候可以使用-S  none来临时覆盖掉全局设置关闭它。

另外,如果在关闭所有其他连接之前尝试退出,则第一个ssh会话看起来可能会挂起。可以对登录到经常连接的主机时运行一个隐藏的ssh会话,可以避免该问题。但是,更好的方法是设置ControlPersist  yes。这会使原始会话无限期地进入后台。可以对它设置时间限制,比如设置ControlPersist为180(或其他数字)。表示三分钟内没有连接,会自动关闭连接。

这种方法的另一个缺点是,会产生很多的master垃圾文件。可以设置登陆时候自动清理,比如rc.local设置:

/bin/rm /home/*/.ssh/master-* || true >/dev/null

如果使用Putty客户端,可以在SSH选项面板中选中"Share SSH connections if possible"多选项来设置。

Linux SSH实用技巧具体有哪些

2. BatchMode

配置文件中还使用很多配置选项。例如,BatchMode告诉ssh该连接是无人值守应用,避免不必要的提示用户输入密码或其他交互性的内容。如果认证项设置不全就会直接报错退出。

3. SendEnv

可以在SSH连接时发送环境变量发送给远程主机。例如,希望在工作站和服务器上始终保持LS_COLORS相同,但是会经常更改,并且不希望使用相同的配置文件。可以添加下面配置:

4. SendEnv LS_COLORS

Putty可以从其configure页的"Connect/Data"选项卡中设置环境变量。

5. TCPKeepAlive

在网络端,如果希望服务器和客户端在空闲时不会断开,则可以设置TCPKeepAlive指定为yes。如果连接处于空闲状态,则不会断开连接。。

远程命令执行

这是SSH最有用的技巧。我们时常要登陆主机仅仅是为了执行一些命令,如果为了个别命令或者批量操作需要(当然可以用ansible等),要登陆主机在操作就有点不方便了。实际上,如果只是为了执行命令或者脚本,完全可以不用登陆到远程主机,直接用ssh命令就可以。

简单命令执行

SSH远程执行命令的格式为:

ssh [用户名]@[远程主机名或 IP] [命令或脚本]

比如我们要获取远程主机运行信息,可以使用uptime:

ssh chongchong uptime

结果:

11:23:55 up 28 days, 23:41, 0 users, load average: 2.46, 1.16, 0.49

比如我们需要获取远程主机的磁盘情况,可以使用

ssh chongchong df -h

Linux SSH实用技巧具体有哪些

执行多条命令

其他命令也类似,如果命令较长或者涉及多个命令需要把命令部分用引号括住:

比如要获取主机情况和主机磁盘情况:

ssh chongchong "uptime && df -h"

Linux SSH实用技巧具体有哪些

或者使用:

ssh chongchong "uptime ; df -h"

远程抓包

设想一个更复杂的例子,我们需要对远程主机用抓包,然后再本地用Wireshark分析:

ssh root@someserver 'tcpdump -c 1000 -nn -w - not port 1234' | wireshark -k -i -

当命令行下需要使用tshark的操作。

ssh root@someserver 'tcpdump -c 1000 -nn -w - not port 1234' | wireshark -i -

结果:

&hellip;  3.759005 112.215.162.105 -> 112.252.251.70 TCP 78 [TCP Dup ACK 840#2] outlaws > 65522 [ACK] Seq=49 Ack=90193 Win=126 Len=0 TSval=2402288138 TSecr=2506305501 SLE=91561 SRE=94297  3.759022 112.252.251.70 -> 112.215.162.105 TCP 1434 65522 > outlaws [ACK] Seq=95665 Ack=49 Win=309 Len=1368 TSval=2506305583 TSecr=2402288138  3.761937 fe80::6d94:f636:7715:26dc -> ff02::1:2 DHCPv6 150 Solicit XID: 0x58568d CID: 000100011dd4af3b00155d6d3404  3.762006 Cisco_d3:c7:bf -> Broadcast ARP 60 Who has 103.218.185.171? Tell 103.218.185.1  3.762374 121.50.168.101 -> 121.50.168.255 NBNS 92 Name query NB XENNO.INFO<00>  3.768515 169.254.2.31 -> 169.254.255.255 NBNS 92 Name query NB FSIGNS.DUBA.net<00>  3.780159 Cisco_d3:c7:bf -> Broadcast ARP 60 Who has 202.74.234.238? Tell 202.74.234.1  3.796134 Cisco_d3:c7:bf -> Broadcast ARP 60 Who has 112.252.251.93? Tell 112.252.251.1  3.801334 112.215.162.105 -> 112.252.251.70 TCP 78 [TCP Dup ACK 840#3] outlaws > 65522 [ACK] Seq=49 Ack=90193 Win=126 Len=0 TSval=2402288179 TSecr=2506305501 SLE=91561 SRE=95665  3.801394 112.252.251.70 -> 112.215.162.105 TCP 1434 [TCP Fast Retransmission] 65522 > outlaws [ACK] Seq=90193 Ack=49 Win=309 Len=1368 TSval=2506305625 TSecr=2402288179  3.804767 185.216.140.36 -> 157.119.69.59 TCP 60 51426 > 52622 [SYN] Seq=0 Win=1024 Len=0  3.806149 Cisco_d3:c7:bf -> Broadcast ARP 60 Who has 103.248.220.121? Tell 103.248.220.1  3.807153 Cisco_d3:c7:bf -> Broadcast ARP 60 Who has 103.248.221.171? Tell 103.248.221.1  3.809116 fe80::a563:2c5c:97df:13ca -> ff02::1:2 DHCPv6 148 Solicit XID: 0x5c67c7 CID: 000100011dd4af3b00155d6d3404  3.811726 Cisco_d3:c7:bf -> Broadcast ARP 60 Who has 202.74.232.203? Tell 202.74.232.1  3.812418 Cisco_d3:c7:bf -> Broadcast ARP 60 Who has 157.119.71.127? Tell 157.119.71.1  3.819393 fe80::910c:1871:e52f:9b82 -> ff02::1:2 DHCPv6 152 Solicit XID: 0x8a263a CID: 00010001205a760c00155df47d05  3.838355 Cisco_d3:c7:bf -> Broadcast ARP 60 Who has 202.74.234.147? Tell 202.74.234.1  3.840331 45.249.181.172 -> 239.255.255.250 SSDP 216 M-SEARCH * Http/1.1  3.840570 58.215.162.105 -> 142.252.251.70 TCP 66 outlaws > 65522 [ACK] Seq=49 Ack=95665 Win=117 Len=0 TSval=2402288220 TSecr=2506305625  3.840608 142.252.251.70 -> 58.215.162.105 TCP 1434 65522 > outlaws [ACK] Seq=97033 Ack=49 Win=309 Len=1368 TSval=2506305664 TSecr=2402288220  &hellip;

执行脚本

我们先写一个简单脚本获取远程主机一些信息,包括主机名、uptime,内存,磁盘和内核信息:

#!/bin/bash    echo "---------主机名--------------------------------------------"  hostnamectl  echo -e "\n"  echo "---------系统信息------------------------------------------"  uptime  echo -e "\n"  echo "---------可用内存------------------------------------------"  free -m  echo -e "\n"  echo "---------磁盘信息------------------------------------------"  df -h  echo -e "\n"  echo "---------内核版本-------------------------------------------"  uname -a  echo -e "\n"  echo "------------------------------------------------------------"
Linux SSH实用技巧具体有哪些

然后使用下面语句执行:

ssh chongchong 'bash -s' < host-info.sh

Linux SSH实用技巧具体有哪些

也可以使用管道形式,但是会有提示信息:

cat host-info.sh | ssh chongchong

Linux SSH实用技巧具体有哪些

SSH速度测试

最好一个技巧,SSH连接需要速度快才爽。那么究竟SSH连接快不快,我们可以配合pv来测速:

yes | pv | ssh chongchong "cat >/dev/null"

Linux SSH实用技巧具体有哪些

sshfs挂载远程目录

如果SSH连接很快,我们就可以基于SSH将远程主机的目录用sshfs挂载到本地来。挂载的目录是一个FUSE文件系统,可以作为常规用户程序而不是内核文件系统。

mkdir ~/remoteshared  sshfs <user>@<host>:/remotepath ~/remoteshared

注意普通用户要用sshfs挂载远程目录,需要先把用户添加到fuse用户组,否则会报错:

fuse: failed to exec fusermount: Permission denied

我们使用:

usermod -a -G fuse cc

这样我们就可以使用sshfs了:

sshfs chongchong:/tmp ./data

好了,现在就可以在data对远程主机的/tmp目录做操作了。注意这有个前期就是你的ssh连接需要很快,否则,你对该目录(父目录)操作(比ls)会非常慢。这时可以使用:

fusermount -u data

删除该挂载。

注意sshfs的挂载也会在df中显示:

df -h  Filesystem Size Used Avail Use% Mounted on  /dev/sda3 886G 16G 825G 2% /  tmpfs 8.0G 0 8.0G 0% /dev/shm  /dev/sda1 485M 87M 374M 19% /boot  chongchong:/tmp 7.7G 2.7G 5.0G 35% /home/cc/data

关于Linux SSH实用技巧具体有哪些问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网操作系统频道了解更多相关知识。

--结束END--

本文标题: Linux SSH实用技巧具体有哪些

本文链接: https://lsjlt.com/news/282337.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux SSH实用技巧具体有哪些
    Linux SSH实用技巧具体有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。现在远程服务器管理最常用的方式要数SSH(Secure  Shell了)。SSH...
    99+
    2023-06-16
  • 有哪些使用SSH的技巧
    本篇内容主要讲解“有哪些使用SSH的技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些使用SSH的技巧”吧!1. 多条连接共享如果你需要在多个窗口中打开到同一个服务器的连接,而不想每次都输...
    99+
    2023-06-12
  • PHP对话的具体使用技巧有哪些
    这篇文章给大家介绍PHP对话的具体使用技巧有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。对于PHP来说,***的遗憾是它对对话并不支持。更新到PHP4.0的时候,这一遗憾被填补上了。今天我们就来具体了解一下PHP...
    99+
    2023-06-17
  • linux下高级SSH安全技巧有哪些
    本篇文章给大家分享的是有关linux下高级SSH安全技巧有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。SSH服务器配置文件是/etc/ssh/sshd_conf。在你对它...
    99+
    2023-06-13
  • Linux的实用技巧有哪些
    这篇文章主要讲解了“Linux的实用技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux的实用技巧有哪些”吧!处理特殊的文件名假设Linux系统中有一个文件名叫“-ee”,如果...
    99+
    2023-06-17
  • Linux中有哪些实用技巧
    这篇文章主要讲解了“Linux中有哪些实用技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux中有哪些实用技巧”吧!重点:① 学会查看linux各种状态,包括:网络IO、磁盘、CPU...
    99+
    2023-06-28
  • SSH命令使用小技巧有哪些
    这篇文章主要介绍了SSH命令使用小技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。SSH 是 Linux 下进行远程连接的基本工具,SSH对常用的用途就是登录,SSH...
    99+
    2023-06-27
  • linux中有哪些ssh工具
    本篇内容介绍了“linux中有哪些ssh工具”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!linux ssh工具有:1、Putty,是一个免...
    99+
    2023-06-21
  • Linux中实用的技巧有哪些
    这篇文章主要介绍了Linux中实用的技巧有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux中实用的技巧有哪些文章都会有所收获,下面我们一起来看看吧。 一个查找命令历史的交互模式&l...
    99+
    2023-06-27
  • 提高你的工作效率linux技巧具体用哪些
    提高你的工作效率linux技巧具体用哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。linux中的一些小技巧可以大大提高你的工作效率,本文就细数那些提高效率或者简单却有效的l...
    99+
    2023-06-05
  • 使用Linux技巧有哪些
    小编给大家分享一下使用Linux技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1:检查不是由你运行的程序难度:高级应用程序:bash(译注:UNIX或者...
    99+
    2023-06-16
  • Linux使用技巧有哪些
    这篇文章主要为大家展示了“Linux使用技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux使用技巧有哪些”这篇文章吧。1.快速跳转命令 - z要是每次都要进入一个目录很深的文件夹...
    99+
    2023-06-15
  • byobu复用SSH会话的技巧有哪些
    今天就跟大家聊聊有关byobu复用SSH会话的技巧有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Byobu 能让你在保持会话活跃的情况下维护多个终端窗口,通过 SSH 连接、断...
    99+
    2023-06-05
  • VB.NET窗体应用技巧有哪些
    小编给大家分享一下VB.NET窗体应用技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!打开 Visual Studio 2008在文件 (File) 菜单...
    99+
    2023-06-17
  • linux的技巧有哪些
    本篇内容主要讲解“linux的技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux的技巧有哪些”吧!Linux下修改MAC地址  MAC地址是网卡的物理地址,在Windows系统下...
    99+
    2023-06-10
  • Linux中有哪些使用技巧
    这篇文章主要为大家展示了“Linux中有哪些使用技巧”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中有哪些使用技巧”这篇文章吧。文中软件安装命令以 Ubuntu 为例,其它发行版类似。...
    99+
    2023-06-29
  • Linux常用的技巧有哪些
    这篇文章主要介绍“Linux常用的技巧有哪些”,在日常操作中,相信很多人在Linux常用的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux常用的技巧有哪些”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-27
  • 实用的Linux命令行技巧有哪些
    小编给大家分享一下实用的Linux命令行技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!输出显示为一个表有时候,当你看到一个命令的输出,由于过度拥挤的字符...
    99+
    2023-06-16
  • 12款非常实用的Linux工具具体有哪些
    这篇文章将为大家详细讲解有关12款非常实用的Linux工具具体有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。介绍12款 Linux 运维比较实用的工具,希望对 Linux 运维人员有所...
    99+
    2023-06-15
  • Linux经典实用的使用技巧有哪些
    本篇内容主要讲解“Linux经典实用的使用技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux经典实用的使用技巧有哪些”吧!HOST的乐趣: Host能够用来查询域名,然而它可以得...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作