系统远程调用服务
1.sshd简介
sshd=secure shell
可以通过网络在主机中开机shell的服务
客户端软件
sshd
连接方式:
ssh [email protected] 文本模式的链接
ssh -X [email protected] 可以在链接成功后开机图形
注意:
第一次链接陌生主机是否要建立认证文件
所以会询问是否建立,需要输入yes
再次链接此台主机时,因为已经生成~/.ssh/know_hosts文件,所以不需要再次输入yes
远程复制:
scp file [email protected]:dir 上传
scp [email protected]:file dir 下载
本次实验会应用到两台虚拟机以及一台主机,一台虚拟机被设置为服务机,另一台则被设置为客户机
服务机的ip设置
客户端ip设置
登录
客户端通过ssh密码认证进入服务机,由于是第一次进入,所以要进行确认并输入密码
切换路径到桌面并创建file1到file1010个文件
文件的上传,通过scp file [email protected]:dir命令格式将刚刚创建的十个文件上传给服务端(ip为172.25.254.70)
上传完毕后客户端桌面如下所示。
删除光桌面所有文件,然后下载服务端的file1-file5五个文件,结束后桌面如下所示。
2.sshd的key认证(该加密方式为非对称加密,加密解密为不同密码,用来实现免密登录)
在实验之前,若之前进行过相似操作,则先删除/root/.ssh/下的文件
1.生成认证key
ssh-****** 生成**的命令
[[email protected] Desktop]# ssh-****** 生成**的命令
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kiosk/.ssh/id_rsa): 指定保存加密的字符的文件(使用默认路径)
Enter passphrase (empty for no passphrase): 设定密码(设置为空)
Enter same passphrase again: 确认密码
Your identification has been saved in /home/kiosk/.ssh/id_rsa. 私钥
Your public key has been saved in /home/kiosk/.ssh/id_rsa.pub. 公钥
可以直接指定路径与密码,不需要经过三次回车确认直接生成**,使用的也是默认路径,设置密码为空。
在生成**后,查看/root/.ssh/目录下文件,查看**是否生成
2.上传公钥
ssh-copy-id -i /root.ssh/id_rsa.pub [email protected] 改命令上传的对象为服务机自己
上传公钥并查看上锁是否成功
若出现“added”字样,则表示添加成功
3.分发钥匙
scp /root/.ssh/id_rsa [email protected] 把自己的钥匙分发给自己想要分发的对象
在传递之前首先确认客户机是否有/root/.ssh这个文件,若没有则进行ssh连接命令,在输入“yes/no”时按“ctrl+c”取消,该目录会自己建立,可以看到在下面新建立的目录中什么文件都不存在。
将自己的钥匙传给客户机
查看客户机的/root/.ssh目录,可以看到分发的**id_rsa
随后用客户端登陆服务器,看是否需要密码
可以看到,由于是第一次连接,我们需要对其进行确认,但在确认后并不需要输入密码,而后直接进入到服务器的界面,这表示免密登陆成功。
3.sshd的安全设定
修改配置的文件在 /etc/ssh/sshd_config中
78 PasswordAuthentication yes|no 是否允许用户通过登录系统的密码做sshd的认证
48 PermitRootLogin yes|no 是否允许root用户通过sshd服务的认证
52 Allowusers student westos 设定用户白名单,白名单默认不再用户名单中的用户不能使用sshd
53 denyusers westos 设定用户黑名单,黑名单出现默认不再名单中的用户可以使用sshd
78 PasswordAuthentication yes|no 是否允许用户通过登录系统的密码做sshd的认证
使用命令vim /etc/ssh/sshd_config修改配置文件,修改78行PasswordAuthentication为no(之前为yes),表示不允许用户通过输入密码的方式来做sshd认证,在修改完之后需要重启sshd服务(每次对sshd的配置文件进行修改都需要重启sshd服务使服务生效)
不允许用户使用密码登陆认证(不给你式密码的权力),这样只有你分发钥匙的人才可以进来(免密登录)
48 PermitRootLogin yes|no 是否允许root用户通过sshd服务的认证
在修改48行配置文件之前,先还原78行配置文件,然后再登陆服务机,发现可以登录了。
修改PermitRootLogin为no,之前为yes,并去除注释符号“#”然后重启sshd服务
可以看到,即使输入正确的密码也无法进入服务机。(输入的密码为正确的密码),因为配置文件被我们修改,禁止root用户登入。
进入不了root界面,但我们可以进入其他用户的界面。
53 denyusers root 设定用户黑名单,黑名单出现默认不再名单中的用户可以使用sshd
还原48行配置文件并添加黑名单,黑名单用户为root
在设置黑名单后,我们进入root用户时,会无法进入。
但我們依旧可以进入其他用户(student)
52 Allowusers root 设定用户白名单,白名单默认不再用户名单中的用户不能使用sshd
去除黑名单,设置白名单为root,然后重启sshd
退出student,然后再次登录student用户,发现无法进入,(白名单仅有root,所以只可以登录root用户)
然后我们使用root用户登录,发现可以进入服务机
4.添加sshd登陆登陆信息
vim /etc/motd 文件内容就是登陆后显示的信息
使用vim /etc/mtod来编辑登录后显示的内容
下次登陆时,我们所编辑的内容就会在登录上显示。
5.用户的登陆审计
1.last
last查看的信息都存储在/var/log/wtmp下
2.lastb
lastb中的信息都存在/var/log/btmp下
3.w
w -f 查看使用来源
w -i 显示ip
w显示的信息都在/var/run/utmp下
使用w命令查看用户来源与ip
如何主动断开别人的连接
使用w -i查看来源ip,然后查找该任务的进程,最后用kill命令杀死该进程,连接就会断开啦。
可以看到连接关闭了。