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选项
- ssh -g -R 0.0.0.0:12345:127.0.0.1 -f -N 10.0.0.205
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服务