执子之手

与子偕老


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索
close

Linux常用命令介绍 02 - ssh

时间: 2020-03-29   |   分类: 运维     |   阅读: 1145 字 ~3分钟   |   访问: 0

SSH在Linux中占有重要的地位。通常我们远程登录服务器都是通过ssh协议,但是ssh命令(或者SSH协议)能够实现的功能还有很多。我日常用到一些,但是肯定还有各种各样的用法,有兴趣的朋友可以自行搜索更多资料。

1. 防止掉线

使用SSH连接服务器时候,通常第一个要修改的选项就是防止掉线。总体上来说有两类方法来防止服务器掉线:

  • 客户端/客户端工具发送心跳包;
  • 服务器端发送心跳包。 如果有服务器的控制权,可以修改ssh的配置选项,推荐使用第二种方案,通常更有保障一些。如果没有服务器的控制权,那就只能用第一种了。

1.1 客户端工具SecureCRT

客户端工具配置因工具而异。我用的是SecureCRT,相应的配置可以在:Session Options - Terminal中,对应的选项为:Send protocol NO-OP,这里需要设置每个多少秒钟发送一个NO-OP指令给服务器以维持连接不断开。配置如下图: -w781

1.2 Mac命令行客户端

如果使用Mac命令行中的ssh命令,可以在配置文件.ssh/config中增加如下配置:

1Host myhostshortcut
2     HostName myhost.com
3     User barthelemy
4     ServerAliveInterval 60
5     ServerAliveCountMax 10

1.3 服务器端配置

服务器端配置文件在:/etc/ssh/sshd_config,增加如下配置即可:

1ClientAliveInterval 30
2ClientAliveCountMax 86400

其中的参数说明如下:

ServerAliveInterval: number of seconds that the client will wait before sending a null packet to the server (to keep the connection alive).

ClientAliveInterval: number of seconds that the server will wait before sending a null packet to the client (to keep the connection alive).

Setting a value of 0 (the default) will disable these features so your connection could drop if it is idle for too long.

总结一下:ServerAliveInterval用在客户端配置上,让客户端每个一段时间发送NO_OP包以保持连接想;ClientAliveInterval用在服务器端配置,让服务器端每隔一段时间发送包以保持连接。 除了ServerAliveInterval,ClientAliveInterval外还有:ClientAliveCountMax,ServerAliveCountMax,默认值为3。保持连线的最大时长=Interval*CountMax。

2. 通过SSH映射远程服务器端口到本地

例如:我们在生产环境中有数据库服务器,但是不方便开放端口到外网。而本地的研发或者其他人员也想访问它。这时可以通过ssh协议将远程端口映射到本地网络中。

例如,环境信息如下:

  • 数据库服务器IP为: 192.168.77.99:3306
  • 跳板机地址为:taxfort.eveus.com
  • 跳板机访问用户是ubuntu,访问方式是证书(/opt/apps/taxmyxql/id_rsa);
  • 映射到本地机器: 192.168.2.236:33306

我们可以使用如下的命令实现:

1#!/bin/bash
2ssh -o StrictHostKeyChecking=no -i /opt/apps/taxmysql/id_rsa -L 192.168.2.236:33306:192.168.77.99:3306 -N ubuntu@taxfort.eveus.com

相关参数介绍:

  • -o StrictHostKeyChecking=no 跳过服务器证书强制校验。也就是不需要在authorized_keys中存在也可以链接服务器;
  • -i 指定连接用的证书
  • -L 指定端口映射的信息。格式是:[bind_address:]port:host:hostport
  • -N 不执行远端的命令。
#Linux#
Linux常用命令介绍 03 - tree
Mac上面的文件比较功能
  • 文章目录
  • 站点概览
Orchidflower

Orchidflower

Do one thing at a time, and do well.

77 日志
6 分类
84 标签
GitHub 知乎 OSC 豆瓣
  • 1. 防止掉线
    • 1.1 客户端工具SecureCRT
    • 1.2 Mac命令行客户端
  • 1.3 服务器端配置
  • 2. 通过SSH映射远程服务器端口到本地
© 2009 - 2024 执子之手
Powered by - Hugo v0.113.0
Theme by - NexT
ICP - 鲁ICP备17006463号-1
0%