linux远程免密登陆:
1.在终端中依次打开两个虚拟机,并且将两个虚拟机重置,只有这样才能对虚拟机的ip重新设置
在终端中输入下面的指令
nm-connection-editor
按回车键直接进入下图所示界面(右边为server虚拟机,左边为desktop虚拟机,用sever当做服务器)
选中对话框中原有项目后点击右侧delect,删除后选择add --> creat,之后进入到下图所示界面:
选择第一个框点击右侧下拉菜单,选择下拉菜单中的内容
选择完成后进入到ipv4 settings界面
继续点击第一行的右边下拉菜单,在菜单中选择手动Manual–> add
在三个空中依次填入真机的ip地址最后一段的数字加上50或100来与真机进行区分(可以给第一个虚拟机(desktop)加上100,给第二个虚拟机(server)加上50)、掩码以及最后一个空不填,但必须点一下最后一个空(确保能够正常保存),完成后点击有下角save,推出编辑界面
2.在完成后输入
systemctl restart network
来重启网卡(凡是配置文件被更改,都应该在更改完成后重启该服务),确保后面能够正常工作
3.之后依次在两个虚拟机中输入下面的指令
ping 172.25.254.67
如果显示如图所示界面:
[root@localhost Desktop]# ping 172.25.254.67
PING 172.25.254.50 (172.25.254.50) 56(84) bytes of data.
64 bytes from 172.25.254.67: icmp_seq=1 ttl=64 time=0.256 ms
64 bytes from 172.25.254.67: icmp_seq=2 ttl=64 time=0.183 ms
64 bytes from 172.25.254.67: icmp_seq=3 ttl=64 time=0.156 ms
64 bytes from 172.25.254.67: icmp_seq=4 ttl=64 time=0.193 ms
64 bytes from 172.25.254.67: icmp_seq=5 ttl=64 time=0.195 ms
64 bytes from 172.25.254.67: icmp_seq=6 ttl=64 time=0.190 ms
64 bytes from 172.25.254.67: icmp_seq=7 ttl=64 time=0.137 ms
^C
--- 172.25.254.67 ping statistics ---
说明可以ping通,ip地址设置成功,后续操作便可执行
4.在终端中输入
cd /root/.ssh
进入到.ssh目录,将该目录下的所有内容删除
(第四个步骤之前包括第四步是对两个虚拟机都要进行的操作)
5.加密服务
将server虚拟机当作服务器,在终端中输入下面的指令
ssh-keygen
后面需要输入的地方都可按回车直接跳过,这样系统会认为是默认值而对“锁”和“钥匙”按照自己的算法进行加密产生公钥和私钥,公钥相当于锁,私钥相当于与这把锁相匹配的钥匙
6.正如人开门,先需要将所子挂在自己的房门上,否则锁和钥匙没有任何意义,而将锁挂在自己房门上的linux操作是
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.117
---- -------------
1 2
横线以前的都为固定格式,后面的需要视情况而定,1可以理解为大门,一个院子可能有好几个门可以提供进出,root可以看作是其中一扇门的名字,表示将锁子挂在这扇门上,这样拿着与这把所锁相普配的钥匙的人便可以直接通过这扇门直接进出院子而不需要与院子的主人打招呼,但如果他要从其他门进入院子就必须要与院子主人打招呼,通过这项操作就在服务区上上了一把锁。
之后在终端中输入
ls
查看/root/.ssh
目录下的文件,如果出现authorized_keys
文件,标示加密成功
而上述操作也只是将锁子挂在了门上,而将钥匙送给特定的人就需要进行接下来的操作
7.在终端中输入:
scp /root/.ssh/id_rsa root@172.25.254.167:/root/.ssh/
这项操作是将服务器上那把锁的私钥发送给可以远程登陆服务器的用户的/root/.ssh
目录下
经过上面的所有操作以后就可以在desktop虚拟机的root用户中以server服务器的root用户的身份免密登录server服务器
从图中可以看出没有输入密码直接远程登录
8.sshd的安全设定:
vim /etc/ssh/sshd_config
78行
PasswordAuthentication yes|no
(是否允许用户通过登陆密码作sshd的认证)
#一台虚拟机上的一个用户可以以另外一台虚拟机上的某一个用户身份登陆那台虚拟机,但作为sshd认证方式有两种,一种是密码,还有一种是密钥,将上述改为no以后就,就不能把登陆密码当作sshd的认证,只有密钥生效,可以提高服务器的安全级别。
48行
PermitRootlogin no|yes
(是否允许root用户通过sshd服务的认证)
#将上述改为no以后,其他用户就不能以服务其的root用户的身份登陆服务器。
52行
AllowUsers username
(服务端存在的用户并且有锁)
#sshd用户的白名单
DenyUsers username
(服务端存在的用户并且有锁)
#sshd用户的黑名单
9.添加sshd登录信息:
vim /etc/motd
在服务器/etc/motd
文件中添加内容,被添加的内容将会在其他虚拟机远程登录服务器时作为提示信息
10.用户登录审计:
w 查看正在使用当前系统的用户
w -f 查看使用来源
w -i显示ip
last 查看使用过并退出的用户信息
lastb 查看试图登录但没有成功的用户