Linux中的远程登陆服务
让真实主机和虚拟机互通网络
-
真实主机的操作
1、在真实主机中,切换到超级用户,在超级用户下进入目录cd /etc/sysconfig/network-scripts/ 如果有ifcfg-br0文件则说明已经做过设定。如果没有,就需要做以下步骤进行配置
2、 cp ifcfg-enp2s0 /mnt (作出预定的保存,方便后续的还原)
cp ifcfg-enp2s0 ifcfg-br0(复制)
3、进入vim模式编辑两个文件
vim ifcfg-br0(网卡的接口)和vim ifcg-enp2s0(网卡配置文件)具体配置内容如下:vim ifcg-enp2s0 DEVICE=enp2s0 BOOTPROTO=none ONBOOT=yes BRIDGE=br0 vim ifcfg-br0 DEVICE=br0 BOOTPROTO=none IPADDR=172.25.254.1 PREFIX=24 ONBOOT=yes TYPE=Bridge
4、 再reboot重启
5、 用 bridge link 看一下配置是否成功
6、用virt-manager 命令在主机中打开虚拟机并且作出设置
双击打开窗口,点击灯泡,点击NIC,作一下选择,点击 apply (桥接设定完成)
- 打开虚拟机配置网络
在虚拟机中输入命令nm-connection-editor进行配置。 原有的都删掉,点击加号重新创建一个新的,并按照下列截图对其进行配置并保存即可
ping + 真实主机id 看是否成功
注意:如果配置网络出现错误,可能是自己的电脑连过别的wifi,有别的wifi配置,删掉即可。即在真实主机里面输入nm-connection-editor命令,删掉多余的。
Openssh的功能
-
sshd服务
1、作用:可以实现通过网络在远程主机中开启安全shell的操作
Secure SHell ===> ssh ##客户端
Secure SHell daemon ===>sshd ##服务端
2、安装包 openssh-server
3、主配置文件 /etc/ssh/sshd_conf
4、默认端口 22
5、客户端命令 ssh -
ssh
1、基本用法
ssh -l 远程主机用户 < ip | hostname>
##由本机远程联系到另外一个主机,两个主机所有的key是一样的
##当连接因为认证问题被拒绝时如何解决问题?
#模拟key不一致。在服务器删掉一个key文件,再重启,key文件会再生成 ,但是此时真实主机和虚拟机的key就不一样了,在真实主机上连接虚拟机就会失败
#如何解决?根据提示进行编辑文件,然后再重新连接,建立新的身份认证就会解决此问题。rm -rf /etc/ssh/ssh_host_ecdsa_key.pub ##在服务器删掉一个key systemctl restart sshd ##在服务器重启服务,key会再次生成 ssh -l root 172.25.254.109 ## 在真实主机再次建立连接 ##连接失败,因为真实主机和虚拟机的key对应不上 vim /home/xiaowuziya/.ssh/known_hosts ##根据报错提示打开文件编辑 ssh -l root 172.25.254.109 ##在真实主机再次连接,连接成功
2、ssh 常用参数
-l ##指定登陆用户 -i ##指定私钥 -X ##开启图形,其产生的命令在服务器里面 -f ##后台运行 -o ##指定连接参数 #ssh -l root 172.25.254.x -o "StrictHostkeyChechking=no" 首次链接不需要输入yes -t ##指定连接跳板#从被授权的连接到没有被授权的 ,在没有被授权的服务器中显示是被授权的连接的他 #ssh -l root 172.25.254.x -t ssh -l root 172.25.254.x -Xl #后面跟着命令,不打开服务器,只是执行命令,在前台 -Xlf #后面跟着命令,不打开服务器,执行命令,在后台 rm -rf ~/.ssh/known_hosts (删除之前连接过服务器的痕迹,表示我没有连接任何人)
sshd key 认证
-
认证类型
1、对称加密
加密和解密是同一字符串。这种加密方法可以被暴力破解,容易遗忘,容易泄漏。
2、非对称加密
加密用公钥,解密用私钥,不会被盗用,更加安全。
##连接远程主机的时候需要输入密码,这是一种对称加密,我们需要加入一种非对称加密。 -
在客户端生成公钥和私钥
方法一:ssh-keygen ##遇见输入密码就直接回车跳过
方法二: ssh-keygen -f /root/.ssh/id_rsa -P " " 非交互模式,免密,直接生成。
##所生成的公钥和私钥放在/home/westostest/.ssh中
- 给服务器上锁
##用公钥和私钥锁定了这个虚拟机。
##给虚拟机中加入了key,key中的密钥和真实主机中的密钥相同。
#如果将在真实主机产生的公钥和私钥都放入了虚拟机,则连接虚拟机的时候不需要密码。
##将两台主机的任意一个密钥从文件夹移走移走后,此时如果要想连接虚拟机就还是需要密码。
sshd安全优化参数详解
-
参数
Port 2222 ##设端口为2222,一般端口默认都为22 PermitRootlogin yes|no ##对超级用户登陆是否禁止 PasswordAuthentication yes|no ##是否开启原始密码认证方式 AllowUsers lee ##用户白名单(只有白名单里面的人可以连接) DenyUsers lee ##用户黑名单(黑名单里面的人不能连接)
1、先在服务器中输入getenforce,如果他是关闭状态就可进行实验。
2、主配置文件 /etc/selinux/config
3、编辑文件 /etc/ssh/sshd_config 修改端口
##修改端口为2222
##重启并且查看端口
##因为服务器默认端口是22,所以使用命令连接服务器的时候不需要指出端口即可连接
但是服务器的端口被改变了之后,此时必须指明端口才可以连接成功
2、编辑文件 /etc/ssh/sshd_config
##禁止超级用户登陆
##将westostest加入了黑名单
##westostest远程连接失败
##禁止原始的认证方式,配置key认证才可以,谁又钥匙谁可以,防止了暴力破解