linux运维开发之路(七)— ssh服务篇
一、ssh简介
ssh全称为secure shell
可以通过网络在主机中开启shell的服务
客户端软件 sshd
连接方式:
ssh [email protected] ## 文本模式的链接
ssh [email protected] -X ## 可以在链接成功后开启图形
注:第一次连接陌生主机时要建立认证文件所以会询问是否建立,需要输入yes,
再次连接此台主机时,因为已经生成/root/.ssh/know_host文件,所以不需要再次输入yes
阅读必看:以下内容的实现均是在desktop虚拟机和server虚拟机里操作实现的,desktop虚拟机作为客户端(client),其ip为172.25.254.106,server虚拟机作为服务端(server),其ip为172.25.254.206,
远程复制:
scp file [email protected]:/root/Desktop/ ## 服务端将文件file 上传到客户端的桌面上,在客户端的桌面上可以看到file文件。
scp -r /test [email protected]:/root/Desktop/ ## 加上-r,递归的上传test目录以及其下的内容。
scp [email protected]:/etc/passwd . ## 服务端下载客户端/etc/passwd文件到当前位置下。
二、sshd的key认证
1.生产**
ssh-****** ## 生成**
在服务端生成**并且显示/root/.ssh/文件,生成了id_rsa和id_rsa.pub文件,id_rsa称为私钥(钥匙),id_rsa.pub称为公钥(锁)
2.加密服务
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] ## 加密
用生成的锁来加密服务器,并且查看/root/.ssh/,看到新生成了一个authorized文件,这个文件的生成表示加密成功。
3.分发钥匙
scp /root/.ssh/id_rsa [email protected]:/root/.ssh/
把钥匙给客户端,使客户端可以在不用输入密码的情况下,直接访问服务端。
4.测试
ssh [email protected] -X
在客户端访问服务器端验证效果,可以不需要输入密码直接进入服务端。
三、sshd的安全认证
vim /etc/ssh/sshd_config ## 编辑sshd_config文件,
进入文件显示内容的部分截图如下:
PasswordAuthentication yes | no ## 选择是否通过验证密码登陆
文件中默认为yes,即可以选择密码登陆,若改为no,即不允许密码登陆,在这里要注意上面设置的key认证,要先删除所有的key认证,再尝试登陆,不然还会以key认证的方式直接登陆,导致你的验证出现错误,并且在每次编辑/etc/ssh/sshd_config后,都要用命令systemctl restart sshd.server重新启动sshd(以下所有命令的操作都需要重新启动sshd,方可生效),不然不会生效,也会导致验证时不能得到预期的结果。
在客户端进入设定PasswordAuthentication no后,使用服务端去访问客户端,请求被拒绝,访问不了客户端。
PermitRootLogin ## 是否允许root用户通过sshd服务的认证
Allowusers ... 白名单,指定用户访问
Denyusers 黑名单,限制用户访问
vim /etc/ssh/sshd_config,进入文件,可在任意位置编辑白名单和黑名单,如下允许student用户通过sshd服务认证,不允许westos用户通过sshd服务认证。
systemctl restart sshd.server ## 设定后要重新启动(每次设定后一定要运行此条命令)
四、添加sshd登陆信息
vim /etc/motd ## 进入编辑的内容就是登陆后显示的信息
在client端编辑登陆信息
在server端访问client端,登陆信息包含编辑的内容。
五、用户的登陆审计
1. w ## 查看正在使用当前系统的用户
w -f ## 查看使用来源
w -i ## 显示ip
2. last ## 查看使用过并退出的用户信息(部分截图)
3. lastb ## 试图登陆但没成功的用户