SSH详解

SSH是Secure Shell的缩写,是建立在应用层和传输层基础上的安全协议.
安全可靠的远程登录会话和传输协议
SSH客户端适用于多个平台

在linux主要用于远程登陆和数据传输
是C/S架构

SSH功能:
有效防止DNS欺骗和IP欺骗
压缩传输数据
提供了多种传输方式
构建Socket5代理,主要解决本地网络访问资源受限

SSH的配置文件

Port 22                                      #SSH端口设置,默认22            
Protocol 2,1                                 #选择SSH协议版本,这里是1和2都支持,日光值支持一个的话,那就只给一个参数就好了
ListenAddress 0.0.0.0                        #监听的网卡IP,如果本机有不止一个的网卡需要对其指定的时候
PermitRootLogin no                           #是否允许root账号登陆,默认是允许的,但是实际工作中一般不允许,使用的是统一的运维账号,如果需要进行关键操作需要用到root权限是,一般使用sudo获得临时权限
PasswordAuthentication yes                   #是否开启密码验证,如果配置了更高级别的验证方式的话比如密钥,那可以不开启密码验证
PasswordEmptyPasswords no                    #是否允许密码为空
PrintMotd no                                 #登陆后是否显示一些信息,比如上次登陆时间及地点(不建议开启)
PrintLastLog yes                             #显示上次登入信息
KeepAlive yes                                #解决僵尸进程,该设置SSH服务会不停的给客户端发送信息询问是否保持通讯,客户端回应
MaxStartups 10                               #允许尚未登入的联机画面数
DenyUsers *                                  #禁止用户登陆,*代表所有用户
AllowUsers *                                 #允许用户登陆

未登入的联机画面数
在这里插入图片描述

SSH的认证方式与访问策略
1.基于口令的认证方式
2,基于密钥的认证方式(多应用于自动化与集群运维)
1.1生成密钥与公钥文件
ssh-keygen命令就可以生成密钥与公钥,生成之后需要将公钥文件写入到当前用户的.ssh目录下的认证文件当中并修改权限
eg:cat id_rsa.pub >> ~/.ssh/authorized_keys #.ssh目录权限为700,authorized_keys文件为600
在这里插入图片描述

3.限制用户连接SSH
3.1/etc/ssg/sshd_config配置
DenyUsers test #禁止test用户登入
AllowUsers test #允许test用户登入
DenyGroups test #禁止test群组登入
AllowGroup test #允许test群组登入
3.2重启ssh服务
service sshd restart

4.限制IP连接SSH
4.1iptables防火墙

iptables -A INPUT -p tcp --dport 22 -s 192.168.0.10/32 -j ACCEPT      #允许192.168.0.10访问本地22端口
iptables -A INPUT -p tcp --dport 22 -j DROP     #阻止所有IP访问本地端口

4.2TCP Wrappers(推荐)

    /etc/hosts.allow
    sshd:192.168.0.10/255.255.255.255     #sshd:IP/网段
    /etc/hosts.deny
    sshd:ALL  或  sshd:ALL EXCEPT 192.168.0.10  #做之所以或者允许单个IP

    注:TCP Wrappers只支持长格式掩码,不支持192.168.0.0/24这种短格式掩码

SSH运维常用参数
1.执行远程主机命令
获取远程当前主机系统时间,并以"主机名:时间"的格式保存到本地的remote.txt文件中
SSH执行远程主机命令格式 ssh username@hostname ‘command’
ssh root@192.168.1.1 ‘echo ${HOSTNAME} : date +%Y-%m-%d\ %H:%M:%S’ >> remote.txt
2.ssh构建跳板隧道
hostA可直接访问,hostB只允许hostA访问,通过SSH构建本地到hostB的连接通道

echo 'sshd:192.168.1.10' >> /etc/hosts.deny   #不允许该IP访问本机
plink.exe -t root@192.168.1.11 ssh 192.168.1.12   #首先与11建立连接通过11建立与12 的SSH连接
windows下连接linux服务器(plink或者MyEntunnel)
plink.exe root@192.168.1.10

3.指定密钥路径,端口,用户及配置文件
-i #指定密钥路径
-p #指定SSH端口
-l #指定用户
-F #指定其他配置文件
-t #指定为终端迫使SSH客户端以交互模式工作,常配合expect使用

ssh -l test 192.168.1.10 -i /data/mykey -p 8088 -F /etc/muconfig

4.调试模式与绑定IP
ssh -v hostname #调试模式 , -v参数以类似log的总是返回debug信息,可以帮助运维人员在SSH连接出现问题时快速查找问题
在这里插入图片描述
绑定IP
如果SSH客户端有一个以上的网卡IP地址,就不一定能分得清楚到底是那个IP地址连接道路SSH服务

    ssh -b 192.168.1.11 root@10.0.0.10    #192.168.1.11这个IP来与10.0.0.10建立SSH连接

5.构建Socket5代理
两个必要条件
1.linux主机(随便什么主机,虚拟的也行) 2.SSH用户(随便什么用户,普通用户也行)
构建Socket5隧道(IE和Goole不支持Socket5代理,拓建使用Firefox)
plink.exe 用户名@myvpn.com -i ubuntu.ppk -D 2015 #myvpn.com真实的国外的linux主机 -i指定证书 -D指定端口
构建完成后窗口不要关闭
火狐右侧打开菜单–>高级–>网络–>设置–>手动配置代理–>SOCKS主机:127.0.0.1 端口:2015–>确定

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值