1.sshd简介
ssh全称为 secure shell
可以通过网络在远程主机中开启shell的服务
客户端软件 sshd
连接方式:
1)ssh username@ip ## 文本模式的连接
2)ssh username@ip -X ## 可以在连接成功后开启图形
注意:1.在第一次连接陌生主机时,要生成认证文件/root/.ssh/know_host,所以会询问是否建立,需要键入yes,
此后在连接此台主机时,只要认证文件存在,就不需要再次输入yes。
2.每次编辑完配置文件后要重新加载配置文件(systemctl reload sshd.service 有的服务不支持重新加载,就要
重启服务)或者重启(systemctl restart sshd.service)
3.为了验证服务管理方法和相关配置文件的设定,我们要保持环境的纯净,删除掉影响实验结果的因素
4.在每次sshd服务实验成功时及时注销远程连接,否则可能会造成混乱,要时刻清醒自己所在的环境
可以打开gedit说明远程连接图形界面成功
通过ip限制用户连接:
主要可以配置两个文件来进行设定
/etc/hosts.deny
/etc/hosts.allow
e.g. 配置文件,使server不能连接到client
注意:
/etc/hosts.deny 即改即生效
/etc/hosts.allow 的优先级高于 /etc/hosts.deny
决定谁可以连比不允许谁连更安全
2.sshd的key认证
1)在服务端设置公钥
有两种方法:
a.直接键入ssh-keygen,按照提示,一步步设置(一直回车,想要密码可以设置)
ssh-keygen
b.直接使用命令行一次设置
ssh-keygen -f /root/.ssh/id_rsa -N ''
2)给服务端ip加密
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
3)关闭原始认证(关闭通过密码完成sshd认证)
vim /etc/ssh/sshd_config ##打开sshd服务配置文件,关闭密码认证方式
把78行的yes改为no,保存退出。
注意:一定要在给前面的配置完成后再关闭密码认证
4)重启服务使配置文件生效(sshd服务也可以直接重新加载配置文件)
systemctl restart sshd.service ##重启sshd服务
systemctl reload sshd.service ##重新加载sshd服务
关闭密码认证后,尝试用client客户端连接server服务端,可以看到不允许连接
5)分发钥匙给允许连接的用户
我们用scp远程复制命令分发钥匙给允许连接的用户
scp /root/.ssh/id_rsa [email protected]:/root/.ssh/
远程复制后,我们可以看到客户端的相应目录下出现了私钥,此时我们用client用户端连接服务端
可以看到无需输入密码就可以直接连接。
6)分发钥匙后确定是否可以连接的配置方法
a.使拥有私钥的用户无法连接服务端,可以删除公钥以达到让私钥失效,进而限制用户登陆
rm -fr /root/.ssh/authorized_keys
b.使拥有私钥的用户重新与客户端取得连接,可以重新创建公钥,进而让用户正常登陆
可以看到加密公钥是从模板复制而来
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
重新按照模板建立公钥后,用户端可以正常连接客户端
3.sshd认证用户黑白名单
配置文件: /etc/ssh/sshd_config
1)root用户登陆权限
vim /etc/ssh/sshd_config
78行更改为yes,允许通过密码进行认证
48行 取消注释,让文本生效,把yes改为no
2)用户白名单
3)用户黑名单
注意:白名单以外默认不可登陆,黑名单以外默认可以登陆,所以白名单比黑名单的安全性更佳。
4.添加sshd登录信息
通过在服务端配置/etc/motd来添加登陆信息,再客户端登陆到server端后就可以看到
vim /etc/motd ##文件内容就是登陆后显示的信息
编写文件内容如下:
可以看到登陆信息显示为:
5.sshd认证的用户登录审计
命令 | 功能 |
---|---|
w | 查看正在使用当前系统的用户 |
w -f | 查看使用来源 |
w -i | 显示IP |
last | 查看使用过并退出的用户信息 |
lastb | 试图登陆但没成功的用户 |
1)w ##查看正在使用当前系统的用户(信息都在/run/utmp里)
2)w -i ##显示IP(信息都在/run/utmp里)
3)w -f ##查看使用来源(信息都在/run/utmp里)
4)last ##查看使用过并退出的用户信息(信息都在/var/log/wtmp里)
5)lastb ##试图登陆但没成功的用户(信息都在/var/log/btmp里)