Linux SSH整理

1 SSH协议

1.1 概述

SSH是(Secure SHell protocol) 的简写,安全外壳协议(SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。

1.2 SSH协商交互过程

  • 客户端发起链接请求
  • 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
  • 客户端生成密钥对
  • 客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密
  • 客户端发送加密后的值到服务端,服务端用私钥解密,得到Res
  • 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
  • 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都 会被加密

1.3 SSH证书校验交互登录流程示意图所示

在这里插入图片描述

2 ssh常用参数

2.1无参数

ssh 192.168.31.21
[root@nginx-2 ~]# ssh 192.168.31.21
Last login: Tue Aug 24 11:16:52 2021 from 192.168.31.1
[root@nginx-lb01 ~]# hostname -i
192.168.31.21

2.2 指定登陆用户

ssh -l root 192.168.31.21

或者

ssh root@192.168.31.21
[root@nginx-2 ~]# ssh root@192.168.31.21 hostname -I
192.168.31.21

2.3 指定端口

ssh root@192.168.31.21 -p222
[root@nginx-2 ~]# ssh root@192.168.31.21 -p222
Last login: Tue Aug 24 12:44:50 2021 from 192.168.31.104
[root@nginx-lb01 ~]# hostname -i
192.168.31.21

2.4 对请求数据压缩

ssh -C 192.168.31.23
[root@nginx-2 ~]# ssh -C 192.168.31.23
The authenticity of host '192.168.31.23 (192.168.31.23)' can't be established.
ECDSA key fingerprint is SHA256:13M/GZzWQQH8v1UrEbvl3RRfyuQglwkNxqhrf1qMO5w.
ECDSA key fingerprint is MD5:49:13:62:29:88:25:ba:d5:12:0c:fb:f7:a9:00:08:f8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.31.23' (ECDSA) to the list of known hosts.
root@192.168.31.23's password:
Last login: Tue Aug 24 11:20:18 2021 from 192.168.31.1
[root@localhost ~]# hostname -I
192.168.31.23

2.5 调试模式

ssh -v 192.168.31.23

在这里插入图片描述
在这里插入图片描述

2.6 指定源地址

ssh -b 192.168.31.104 192.168.31.23

在这里插入图片描述

2.7 使用其他配置文件

#复制配置文件
cp /etc/ssh/ssh_config /opt/my_ssh_config

ssh -F /opt/my_ssh_config 192.168.31.23

在这里插入图片描述

3 sshd服务常用参数

grep -Ev "^$|^#" /etc/ssh/sshd_config
序号参数含义
1Port 22# 端口,默认22
2ListenAddress IP# 设置绑定的ip地址
3LoginGraceTime 2m#设定登陆超时时间
4PermitRootLogin yes#默认ubuntu不允许root远程ssh登录
5StrictModes yes#检查.ssh/文件的所有者,权限等
6MaxAuthTries 6#最大尝试次数
7MaxSessions 10#同一个连接最大会话
8PubkeyAuthentication yes#基于key验证
9PermitEmptyPasswords no#空密码连接
10PasswordAuthentication yes#基于用户名和密码连接
11GatewayPorts no#VPS做转发
12ClientAliveInterval 10#如果n秒之内没有接收到客户端的消息,就通过加密通道发送一条信息。参见ClientAliveCountMax。默认值为0,意味着不发送消息。这项声明通过加密通道(应用层,参见《基础篇》10.1.7节)传递消息,不容易受到IP欺骗攻击(参见术语表)。它区别于TCPKeepAlive,后者使用TCP的keepalive选项(传输层,参见《基础篇》10.1.7节),容易受到IP欺骗攻击。单位:秒
13ClientAliveCountMax 3#指定sshd从客户端断开连接之前,在没有接收到响应时能够发送client-alive消息的条数。参见ClientAliveInterval。.默认3
14UseDNS yes#可以关闭DNS反解析,提升登陆速度
15GSSAPIAuthentication yes#提高速度可改为no
16MaxStartups#未认证连接最大值,默认值10
17Banner /path/file绝大多数的扫描器(INCLUDED ISS)都是从banner info来判断services是否有漏洞的
18AllowUsers user1 user2 user3#以下可以限制可登录用户的办法:
19DenyUsersuserlist是一个由空格隔开的用户名列表,指定哪些用户不可以使用sshd登录。这个列表可以含有通配符*和?。可以用user或者user@host的形式来指定用户。如果使用的是第二种格式的话,那么要确保将host指定为hostname命令所返回的值。
20AllowGroups这个指令后面跟着一串用空格分隔的组名列表(其中可以使用"*“和”?"通配符)。默认允许所有组登录。如果使用了这个指令,那么将仅允许这些组中的成员登录,而拒绝其它所有组。
21DenyGroups这个指令后面跟着一串用空格分隔的组名列表(其中可以使用"*“和”?"通配符)。默认允许所有组登录。如果使用了这个指令,那么这些组中的成员将被拒绝登录。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值