文章目录
一 、SSH服务
1.1 什么是SSH服务器?
-
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;
-
SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;
-
SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
和ssh一样的通信协议还有telnet(端口号23),和ssh不一样的是ssh是密文传输数据,而telnet则是铭文传输,所以相对而言ssh的安全性更高一点。
SSH优点
对通信数据进行加密处理,包括登录名称和登陆的密码,所以安全性很高
1.2 常用的SSH软件的介绍
SSH客户端:putty(开源工具),xshell,CRT
SSH服务端:openSSH(centos7系统默认安装)
centos7 ssh服务启动自检命令: systemctl is-enabled sshd
二 、ssh的运用
我们查看etc/ssh,发现有很多的文件,其中sshd_config 是服务端的配置文件,ssh_config 是客户端的配置文件
2.1 存放ssh服务端的配置文件
进入/etc/ssh/sshd_config文件
常用配置项:
#LoginGraceTime 2m #登录验证时间为两分钟
#PermitRootLogin yes #允许root用户登录(安全考虑,这里可以设置为no,禁止root用户登录)
#MaxAuthTries 6 #最大重试的次数为6
PasswordAuthentication yes #允许空密码用户登录
UseDNS no #禁止DNS反向解析,提高服务器的响应速度
2.2 ssh在Linux中的密码登录
ssh [远程主机用户名]@[远程服务器主机名或IP地址] [-p port]
远程连接192.168.5.129的root用户需要输入他的密码才可以完成登录,如果没有-p则设置默认的端口:22 (-p 用于指定端口号)
2.3 利用ssh协议传输文件和获取文件
scp root@192.168.5.129:/etc/passwd /root/passwd10.txt #下行复制,将远程主机中的etc/passwd文件复制到本机
scp -r /etc/ssh root@192.168.5.129:/opt #上行复制,将本机的etc/ssh复制到远程主机,因为是复制目录所以要-r
如果有同名文件将会直接覆盖
下行复制:
上行复制:
进入另一个虚拟机查看opt目录下是否有复制的文件
2.4 sftp远程访问操作
sftp [-P] 用户@服务端IP (当默认端口改变时,可以用-P指定)
三 、 ssh密钥登录操作
配置密钥对验证
1、通过ssh-keygen工.具为当前用户创建密钥对文件。可用的加密算法为RSA、ECDSA或DSA等〈ssh-keygen命令的"-t"选项用于指定算法类型)。
useradd admin
echo "123123" l passwd --stdin admin
su - admin
ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/admin/ .ssh/id_ecdsa): #指定私钥位置,直接回车使用默认位置
created directory '/ home/ admin/ .ssh ' . #生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下
Enter passphrase (empty for no passphrase) : #设置私钥的密码
Enter same passphrase again : #确认输入
ls -l ~/ .ssh/id ecdsa* #id_ ecdsa是私钥文件,权限默认为600; id_ecdsa.pub是公钥文件,用来提供给SSH 服务器
2、使用ssh_cpoy-id的方式进行密钥设置
进行测试
四 、TCP_wapper的原理和运用
4.1 TCP_wapper的原理
TCP_Wrappers有一个TCP的守护进程叫作tcpd。以ssh为例,每当有ssh的连接请求时,tcpd即会截获请求,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接原封不动的转给真正的ssh进程,由ssh完成后续工作;如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供ssh服务。
4.2 设置黑白名单
/etc/hosts.allow 设置允许访问 tcp 服务程序的策略(白名单)
/etc/hosts.deny 设置禁止访问 tcp 服务程序的策略 (黑名单)
假设引用
只允许IP地址为192.168.5.129的用户访问sshd服务,其他地址被拒绝。
白名单设置:
vim /etc/hosts.allow
黑名单设置:
测试一下
192.168.5.129客户端
192.168.5.131客户端
总结
1、熟知ssh密钥生成的过程,用于对ssh访问的加密,符合更安全的远程控制标准
2、当我们获得一台新的服务器时,为了更安全,取消掉root用户的远程访问以及更换ssh的端口号。
3、ssh中有更高效的传输获取功能,可以加以利用。
4、TCP_Wrappers中的黑白名单,可以大量高效的设置可访问服务端的用户及其能够访问的服务。