sshd服务
sshd简介
-
sshd=Secure Shell,意思就是可以通过网络在主机中开启shell的服务
-
客户端的软件为:sshd——通过该软件实现远程连接
-
连接方式:
ssh username@IP ## 只是文本方式的连接
ssh username@IP -X ## 连接成功后可以开启图形
注意:第一次连接时需要建立认证文件,需要yes确定,再次连接时已经生成~/.ssh/known_hosts文件记录,不需要输入yes
vim /etc/host.deny
设置禁止相关服务的用户ip,这个主要针对客户端,意思是不让哪些ip连接该服务器
vim /etc/hosts.allow
允许某ip连接,优先级比deny高,但我没有实验成功,因为怎么连都可以连通?这是个问题,下面是解决方法:
解决允许某ip连接
仔细观察/etc/hosts.allow,发现里面已经有明确提示:
我们查看hosts_options 了解其使用规则:
man 5 hosts_options
接下来我们修改/etc/hosts.allow
测试: 使用IP为172.25.254.102的客户端去访问,连接失败,使用172.25.254.2客户端去访问,连接成功。
-
远程复制scp
:可以把虚拟机文件考到别的虚拟机或真机
上传: scp 文件 root@目的ip:绝对路径
下载: scp root@目的ip:绝对路径 文件夹
sshd的key认证
作用
:可以让具体的人进行远程连接,更安全!
在服务端生成公钥秘钥对
注意:这里的公钥相当于锁,秘钥相当于钥匙
ssh-keygen
-
图中三步确认的分别是:
1.确定生成目录
2.是否需要密码
3.确认密码
上锁动作:在服务端加密sshd服务
ssh-copy-id -i /root/.ssh/id_rsa.pub 用户@服务端IP
实例:
为了试验验证更有效果,我们关闭原始密码登录验证!
提高安全性
,不让别的用户试服务器秘密
修改服务端/etc/ssh/sshd_config
密码登陆认证 PasswordAuthen设为no ,就只能有密钥的登陆了
vim /etc/ssh/sshd_config
重启一下服务:
两种方法选一种:
systemctl restart sshd.service
systemctl reload sshd.service
分发秘钥
服务端上了锁,这时由服务端决定把钥匙(秘钥)给谁
scp /root/.ssh/id_rsa root@指定客户端IP:/root/.ssh/
注意:如果不成功有可能该客户端没有改目录,建立一个/root/.ssh/即可
禁止客户端登录(砸锁)
相当于我把锁砸了,你有钥匙也进不了。我们刚刚对服务器加密上锁的过程产生了一个文件:/root/.ssh/authorized_keys,删除该文件,则产生禁止!
如何恢复?
其实我之前说过,
公钥就是锁,所以我们把公钥复制到这个文件中即可!
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
然后重启一下sshd服务
systemctl restart sshd.service
你会发现又可以连接了
sshd安全设定(
让服务端的哪些用户可以被远程连接)
主要设定在sshd的配置文件中
查看默认配置:
man 5 sshd_config(只是文件名,不是绝对路径)
vim /etc/ssh/sshd_config
78 PasswordAuthentication yes/no ##是否允许用户通过登陆系统的密码做sshd的认证
48 PermitRootLogin yes ##是否允许root用户通过sshd服务认证
52 AllowUsers student ##设定用户白名单,白名单设定后,默认不在名单中的用户就不能使用sshd
53 DenyUser student ##设定用户黑名单,黑名单设定后,默认不在名单中的用户可以使用sshd
添加sshd登陆信息
vim /etc/motd ##文件内容就是登陆后显示的信息
用户登录信息审计
w ##查看正在使用当前系统的用户
w -f ##查看使用来源
w -i ##显示IP
查看使用过并退出的用户信息:last
记录在/var/log/wtmp里
查看试图登陆但没成功的用户:lastb
记录在 /var/log/btmp里
主机名设置(方便区分)
hostnamectl set-hostname 新主机名
设置完成后重启一下终端就可以