linux中的远程登陆
作者:互联网
环境:
让虚拟机和真实主机互联:1.先在真实主机转换路径cd /etc/sysconfig/network-scripts,然后找其中名为ifcfg-enp0s25的文件(其他电脑不一定这个名,但格式类似),再次复制一份,但改名为ifcfg-br0,然后进行配置,对这两个文件内容进行编辑,之后重启即可。然后去利用命令virt-manager打开虚拟管理,双击点开其中的想要连接虚拟设备管理,将其中的虚拟网络来源,改成Bridge br0:Host device enp0s25,设备模板改成virtro,保存离开即可。
2.然后是虚拟机这边,执行nm-commection-editor命令,选择Ethemet,为连接命名,将方法改为手动Manual,然后填入Address和Netmask,Gateway可不填,保存,完成。
3.selinux需先行关闭,执行getenforce,若显示disabled,则处于关闭状态,若并未关闭,则执行vim /etc/selinux/config,将其中selinux改成SELINUX=disabled,改完之后reboot重启一下
4.关闭防火墙,执行systemctl disable --now firewalld命令
一、Openssh的功能
1.sshd服务的用途
作用:可以实现通过网络在远程主机中开启安全shell的操作
Secure shell -------->ssh #客户端
secure shell daemon-------->sshd #服务端
2.安装包
openssh-server
3.主配置文件
/etc/ssh/sshd_conf
4.默认端口
22/tcp
二、ssh基本用法
eg:ssh -l root 172.25.254.113#通过ssh命令以root身份进入113主机
1.ssh认证
当你在13主机通过ssh命令试图进入113主机时,会询问Are you sure to continue connecting(yes/no)?当你输入yes的过程,这便是一个认证的过程。当认证完成之后,此时你在113主机的/etc/ssh文件下可找到key和pub文件,这样下次13主机登陆时就直接用pub去匹配它的known_hosts.同样,可以查看13主机下~/.ssh/里面的known_hosts,内容等同于113主机下的pub.
#但若不小心删除113主机下的pub和key,就会导致匹配不上而认证错误。此时可编辑~/.ssh/known_hosts,删除其中的错误的内容,就可重新登陆建立认证了
2.ssl常用参数
ssh -l #指定登陆用户
ssh -o " StrictHostKeyChecking=no" #在连接主机时不检测HOSTKEY(自动输入yes)
ssh -i #指定私钥
ssh -t #连接指定跳板
ssh -f #后台运行
ssh -X #开启图形
eg:
ssh -Xl root 172.25.254.113 gedit #指定登陆用户并且开启图形,并打开gedit
ssh -fXl root 172.25.254.113 gedit #指定登陆用户并且开启图形,但在后台运行打开gedit
ssh -l root 172.25.254.113 -t ssh -l root 172.25.254.113 #用虚拟机作为跳板再次连到虚拟机上,所以观察在linux中w -i可以看到113,13是因为主机跳到虚拟机上,而虚拟机为113,因再从虚拟机跳到虚拟机,其中虚拟机作为了一次跳板,故观察到113
ssh -l root 172.25.254.12 -t ssh -l root 172.25.254.113 #这个在linux系统观察到的就是12,因为是12做为跳板连接到虚拟机113的
三、sshd key 认证
1.认证类型
对称加密:加密和解密是同一串字符
非对称加密;加密用公钥,解密用私钥;不会被盗用;攻击者无法通过无密钥方式登陆服务器
2.生成非对称加密密钥
建立key文件(产生公钥私钥文件)
ssh-keygen #交互式
ssh-keygen -f /root/.ssh/id_rsa -P “” #非交互式
加密上传公钥
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.33
#ssh-copy-id 上传密钥命令
#-i 指定公钥
#/root/.ssh/id_rsa.pub 公钥名称
#root 远程主机被加密用户
#@ 分割符
#172.25.254.33 远程主机地址
测试:客户端拥有远程主机的私钥,无需输入密码就可登陆
但如果删除了远程主机的私钥,则登陆仍需要密码
四、OpenSSH服务的安全配置
1、端口修改
在服务端输入vim /etc/ssh/sshd_config
将port改为你想改的数字(但建议四位数以上,防止端口已被占用)
改完之后reload一下:systemctl reload sshd.service
防火墙记得关闭:
在客户端测试(因为默认端口是22,进入服务器端被拒绝):
2、端口绑定
我们可以设定开启的接口ip地址
在服务器端写入指定的ip地址 vim /etc/ssh/sshd_config的listenaddress那行写入指定的ip地址,之后想从其它ip进入主机的请求就会被拒绝
3、密码认证的关闭
vim /etc/ssh/sshd_config,然后PasswordAuthentication后面改yes为no,保存退出后重启一下此服务,禁用密码认证就成功了,禁用后,客户端无法通过密码登陆服务器端
4、sshd服务的用户控制
黑名单:
仍是执行编辑vim /etc/ssh/sshd_config,在AllowUsers那一行后面输入你想加入白名单的用户(空格隔开),然后重启一下(执行systemctl restart sshd.service),此时在客户端测试,发现黑名单加入用户不可登陆,但其他用户可
白名单:
仍是执行编辑vim /etc/ssh/sshd_config,在DenyUsers那一行后面输入你想加入黑名单的用户(空格隔开),然后重启一下(执行systemctl restart sshd.service),此时在客户端测试,白名单加入用户可以登陆,但其他用户不可
#注意:用户白名单是除白名单外都不可用
root用户的访问控制:
仍是执行编辑vim /etc/ssh/sshd_config,在PermitRootLogin那一行后面yes改为no,然后重启一下(执行systemctl restart sshd.service),此时在客户端测试,发现服务器端的root用户无法登陆
六、sshd登陆信息修改
输入vim /etc/motd命令行进行编辑,可以在里面随便输入几行字,保存退出,之后远程登陆时就会显示你上面在文件里编辑的内容
标签:sshd,主机,虚拟机,远程登陆,etc,ssh,linux,root 来源: https://blog.csdn.net/shanshuyue/article/details/112980159