1.sshd简介
1)sshd= secure shell:可以通过网络在主机中开机shell的服务
2)连接方式:
ssh username@ip ##文本模式的链接
ssh -X username@ip ##可以在链接成功后开启图形
注意:
第一次链接陌生主机是要建立认证文件
所以会询问是否建立,需要树入yes
在次链接此台主机时,因为已经生成~/.ssh/know_hosts文件所以不需要再次输入yes
在实验开始之前,需要对虚拟机的网络进行设置:
首先删除原始的信息(一定是删除而不是修改):
再进行新增:
修改名称为eth0,MAC地址选默认的地址:
再对IPv4参数进行设置,其中服务端与客户端的IPv4地址需要在同一个网段,网关的设置默认即可(需要在网管的项目上用鼠标点一下),再进行保存:
使用此命令对网络进行配置,使客户端与服务器的ip地址在同一网段:
我们可以看到,第一次建立连接时会询问是否建立认证文件,此时需要输入yes.
3)
远程复制:
scp file root@ip:dir ##上传
scp root@ip:file dir ##下载
例如,我们在服务端新建一个file文件,通过scp命令可以从服务端下载此文件:
当客户端有一份file文件需要上传,也可以使用scp命令进行上传,我们现在删除刚才在服务端新建的file文件,使用scp命令将刚刚下载到本地的file文件上传到服务端:
我们已经知道ssh命令只能进行文本模式的链接,如下,我们使用ssh命令链接服务端后不能使用gedit,这是因为ssh本身不能开启图形:
若使用ssh -X则可以开启图形,同时 在服务端的进程中也会出现相应的进程:
2.sshd 的key认证
1.生成密钥:
[root@server ~]# ssh-keygen ##生成密钥的命令
执行如下:
2.加密服务
[root@server .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pubroot@172.25.254.50 ##加密sshd服务
下方文件出现说明加密成功
3.分发钥匙
scp /root/.ssh/id_rsa root@172.25.254.150:/root/.ssh/
客户端拿到钥匙后,再次使用ssh链接服务端不需要使用服务端的密码,就可以直接连接。
3.sshd的安全设定
1.PasswordAuthentication yes|no ##是否允许用户通过登陆系统的密码做sshd的认证
我们可以看到,在未修改/etc/ssh/sshd_config文件之前,可以使用服务端的密码进行链接:
在对文件进行修改:
我们连输密码的权利都没有:
2.PermitRootLogin yes|no ##是否允许root用户通过sshd服务的认证
还原上面操作,再对/etc/ssh/sshd_config文件进行修改:
此时,就算我们拥有服务端的密钥,也依旧无法链接:
3.Allowusers student westos ##设定用户白名单,白名单出现默认不再名单中的用户不能使用sshd
修改/etc/ssh/sshd_config文件,将student用户加入白名单,而用户tom不在白名单中(注意:用户student与tom必须是在服务器端存在并且可登陆的用户)
我们可以看到,此时tom不能使用ssh命令链接主机,如果我们在白名单中加入tom:
此时tom可以正常链接
4.Denyusers westos ##设定用户黑名单,黑名单出现默认不再名单中的用户可以使用sshd
若我们同时将student加入黑名单:
此时student用户无法链接
4.添加sshd登陆信息
vim /etc/motd ##文件内容就是登陆后显示的信息
例如,vim /etc/motd,在文件中写入如下信息:
则我们下次使用ssh进行链接是,就可以的登陆界面看到此信息: