OpenSSH详解

思维导图:

1. SSH概述

2. OpenSSH

  • 配置文件:
    • 服务端sshd:/etc/ssh/sshd_config
    • 客户端ssh:/etc/ssh/ssh_config

2.1 客户端程序ssh

1)ssh

2)客户端免密登录

3)scp

4)sftp

2.2 服务端程序sshd

2.3 ssh服务的最佳实践 

3. SSH安全隧道

3.1 本地端口转发

1)语法

  • ssh   -g  -L   local_port:server2_ip:server2_port    user@server1_ip

2)使用示例

  • 场景:
    • 本机的MySQL监听在3306端口,且只允许本地访问,本机的外网地址为10.0.0.209
    • 这时,可以开放本机的12345端口,然后由10.0.0.209这个地址来访问本机127.0.0.1的3306端口
    • 进而其他主机可以通过访问10.0.0.209:12345来连入MySQL
  • 命令:
    • ssh -g -L 12345:127.0.0.1:3306 -f -N 10.0.0.209

3.2 远程端口转发

1)语法

  • ssh  -g  -R  0.0.0.0:port1:local_ip:local_port    root@server_ip
    • 0.0.0.0表示来自所有IP地址的主机都可以访问它
    • port1表示暴露在公网上供其他用户访问的端口
    • local_ip和local_port表示本机提供服务的端口,如127.0.0.1:80
    • root@server_ip 表示公网上其他用户可访问的地址

2)使用示例

  • 场景:
    • 本地主机上构建了一个web服务,但是监听在本机127.0.0.1:88的地址上
    • 但本地主机可以访问外网主机10.0.0.205,外网主机可以开放端口12345
    • 这样当其他主机访问外网主机10.0.0.205:12345时,可以转到本地的127.0.0.1:88地址上
  • 命令:
    • ssh -g -R 0.0.0.0:12345:127.0.0.1 -f -N 10.0.0.205
      • 命令在本地主机上执行
    • 远端主机要开启GatewayPorts选项

3.3 动态端口转发

1)语法

  • ssh  -g  -D  1080  -f  -N  user@server1_ip
    • 将自己是身份切换到user@server1_ip,然后通过这个主机去访问外网
    • 1080是本地动态转发的端口

3.4 端口转发维持

  • 端口转发如果长时间没有操作,就会自动关闭,所以需要端口转发维持
  • ssh  -o  ServerAliveInterval=60   user@ip

4. dropbear(轻量化的ssh协议实现方案)

5. telnet服务

5.1 xinetd超级守护进程

1)xinetd简介

2)xinetd安装和启动

3)瞬时守护进程的配置

4)将sshd托管到xinetd

5.2 telnet服务

 

 

 

 

 

 

posted @ 2020-05-06 20:10  Praywu  阅读(1146)  评论(0编辑  收藏  举报