4.6/4.7 配置网络
4.8/4.9 远程登录
4.10 密钥认证登录Linux
4.11 重置密码
4.12 单用户模式
4.13 救援模式
1.15 克隆虚拟机
1.16 Linux机器相互登录
本次用到的几个命令:
dhclient 自动获取ip rm /* 删除所有系统文件 passwd root 更改密码 uname -r 查看linux内核版本 route -n 查看网关 cat /etc/motd Linux 修改进站提示 mkdir /root/.ssh 创建目录 chmod 700 /root/.ssh 设置目录权限 reboot、init 6、 shutdown -r now 重启Linux cat /etc/redhat-release 查看操作系统版本 ssh -p <端口号> <username>@<ip_addr> 连接服务器 cat /etc/hostname 查看主机名 hostnamectl set-hostname 要修改的名称 配置主机名
操作系统分类:windows linux unix
Debian(1993) ----------> Ubuntu(2004) Slackware(1993) ---->Suse(1994) RedHat(1994) --> Fedora(2002) |_____ -->RHEL(2002) --> CentOS(2004, 2014被RedHat公司收购) https://commons.wikimedia.org/wiki/File:Linux_Distribution_Timeline.svg Linux发行版 timeline https://www.kernel.org/ 内核官网 www.centos.org Centos 官网 https://wiki.centos.org/Download centos版本对比 https://ywnz.com/linuxjc/4444.html 在CentOS 7系统上安装Linux Kernel 5.0的方法 https://segmentfault.com/a/1190000010639190 搭建shadowsocks 首先要有美国的 vps http://ask.apelearn.com/question/18012 设置grub密码 https://www.cnblogs.com/clsn/p/7839965.html http://blog.51cto.com/13055758/2086322 批量无人值守安装centos7系统 https://www.jianshu.com/p/q81RER markdown语法
uname -r 查看linux 内核版本 cat /etc/redhat-release 查看操作系统版本 rm /* 删除所有系统文件 cat /etc/motd Linux 修改进站提示
一、网络配置
配置网络目的:
1)远程登录它 2)可以使用yum安装其它的包
配置网络步骤:
1)执行dhclient命令,自动获取IP地址(NAT模式,它可以自动生成一个IP地址) 查看IP地址的命令: ip addr ip add 快捷键 ctrl L 清屏
ip add 或ifconfig查看网络配置,如果没有ifconfig
通过yum install net-tools 或 yum install -y net-tools 安装
NAT 模式不受限于网络环境,只要电脑能上网,虚拟机就可以
dhclient 自动获取ip
2)配置IP地址,你需要知道:IP地址,子网掩码,网关,DNS 公共的DNS:119.29.29.29 (dnspod) 114.114.114.114 202.106.0.20 8.8.8.8 3)编辑配置文件 按Tab键自动补全命令或者文件路径名字 vi /etc/sysconfig/network-scripts/ifcfg-ens33 直接回车,进入到配置文件里面 按i,进入编辑模式,用方向键把光标挪到最下面,另起一行添加如下内容: IPADDR=xxxxx NETMASK=255.255.255.0 (PREFIX=24) GATEWAY=xxxx DNS1=119.29.29.29 编辑好后,按ESC,再输入 :wq
网络配置文件路径 : /etc/sysconfig/network-scripts/ ifcfg-ens33
BOOTPROTO=static 静态获取IP的方式 ONBOOT=yes 开机启动
4) 重启网络服务
systemctl restart network 或 /etc/init.d/network restart 重启网络服务
报错原因DNS配置有问题,DNS更改为114.114.114.114后正常
route -n 和 ip route 查看网关
window本地cmd 查看网络ipconfig
扩展:
cat 查看文件内容 如果遇到一个很长的文件,cat之后就看不到最前面的内容了,此时可以用管道符和less命令结合起来查看。 管道符 | 作用是,把管道左边的命令结果交给管道右面的命令去处理 如:cat /etc/init.d/network |less b 往上翻(类似page up) f 往下翻页(类似page down) 按q推出less vi 后面跟文件名 按i进入编辑模式,其实也可以按a或者o进入编辑模式。I A O 除了按方向键之外,在一般模式下(没有进入编辑模式之前的那个模式)我们可以按j h k l 当成方向键来用。 编辑完之后,按ESC进入一般模式,之后输入:wq(保持+退出) 查看时间的命令 date 查看日历 cal
二、远程登录
通过配置ip使用PUTTY远程链接
配置主机名
hostnamectl set-hostname 要修改的名称 hostname 查看主机名 cat /etc/hostname 查看主机名的配置文件
修改完成重新连接即可
登陆后也可以是用SSH连接其他机器
密钥认证:
使用一对密钥来进行验证身份。公钥+私钥 公钥是用来加密的,私钥是用来解密的。 1) xshell 工具 用户密钥管理者 生成 秘钥类型(RSA、2048) 输入秘钥名称、密码可以留空 复制公钥
2)到linux机器上执行
a)创建.ssh目录 mkdir ~/.ssh mkdir是创建目录的命令,后面直接跟目录名 ~ 表示用户的家目录,执行echo $HOME查看当前用户的家目录,执行whoami查看当前用户是谁 在一个文件或目录前面加. 表示这个文件或者目录是隐藏的,ls直接看看不到,需要用ls -a看 ls 是查看目录或文件的命令(list) b)cd .ssh cd命令是进入到某个目录的命令,如,cd /home ; cd /tmp/ ; cd .ssh cd后面什么都不加,表示进入到用户家目录 cd == cd ~ 相对路径指的是相对当前目录的一个路径,绝对路径指的是由/开头的路径 cd - 进入到上一次所在的路径下 c)vi authorized_keys //进入之后按i,然后右键粘贴刚刚复制的公钥内容 xshell --> 工具 --> 选项 --> 鼠标和键盘 --> 右键 直接粘贴 --> 选中就复制 按ESC 再输入:wq d)chmod 600 !$ !$表示上一条命令的最后一个参数(所谓参数,指的是以空格或者空白字符划分的那些字符串,比如 ls a b c, a就是第一个参数 b就是第二个参数 c就是第三个参数,也就是最后一个参数) chmod命令是用来更改一个文件或者目录权限的命令。 600就是一个权限值。
3)到xshell的会话属性,用户身份认证 publickey 输入用户名,选择对应的密钥 然后去连接对应机器即可直接连接
三、密钥认证登录Linux
关机: 执行命令 init 0/ shutdown -h now 重启: init 6/ reboot / shutdown -r now
两台机器进行密钥认证登录: ssh-keygen生成密钥对: .ssh/id_rsa .ssh/id_rsa.pub ssh-copy-id root@192.168.183.33 把01机器的公钥复制到02机器上,并登录,02机器就是183.33这台机器,目的是把A机器的公钥放到B机器的authorized_keys文件中
服务器放公钥
客户端放私钥
putty秘钥认证
利用putty自带工具,点击生成公钥
设置密码,保存私钥
服务器设置公钥
创建目录 :mkdir /root/.ssh
设置目录权限: chmod 700 /root/.ssh
编辑存放公钥文件: vi /root/.ssh/authorized_keys(生成的公钥粘贴到该文件下)
防火墙:selinux 关闭:setenforce 0
下一步
服务器设置完成,打开putty客户端
配置私钥,完成后重新登陆,使用生成时设置的密码登陆
xshell秘钥认证,参考上面的远程登录去设置
生成方法:在工具中选择新建用户秘钥生成向导,秘钥类型选择 RSA,秘钥长度选择2048,生成后设置秘钥名称和密码。
在相同文件下粘贴 : vim /root/.ssh/authorized_keys
xshell打开会话,选择对应的会话名称,选择属性->用户身份验证->方法(public key)->用户秘钥(选择刚生成的)->输入密码->确定连接 验证是否已经使用秘钥,更改用户名去连接
四、重置密码
忘记了root密码,没办法登录了。就需要重置密码了。 用的是密钥认证,忘记root密码无所谓,只要你记得密钥密码即可。 密码相对密钥来说,更容易被破解。 密钥认证指的是 远程的ssh登录。 而本地登录无法用密钥。
改密码:
root用户,直接执行 passwd 回车 输入两次新密码即可 普通用户,也可以改。 passwd username user1登录后,改自己密码,只需要执行 passwd 即可
如果忘记密码,也没有用密钥认证,总之就是无法远程登录了,需要使用 ---> 单用户 和 救援模式
五、单用户模式
在忘记密码的情况下,使用单用户模式重置密码,要在物理服务器操作,无法远程操作
如何进入单用户级别具体步骤:
重启机器 按一下方向键,不要让系统马上启动 选中第一个启动项 按e 进入编辑grub的界面 按方向键,找到Linux16开头的行,然后挪到ro那里,把ro改为 rw init=/sysroot/bin/sh 再按ctrl x 启动 执行LANG=en 再执行 chroot /sysroot/ ,进入到真正的Linux系统里 执行 passwd 更改密码 执行 touch /.autorelabel (touch命令是用来创建一个新文件,或者说更改文件时间的命令) 执行exit 退出 chroot的系统环境,到内存的环境 再执行reboot,重启
1.重启Linux
reboot、init 6、 shutdown -r now
虚拟机操作方法:重启客户机然后按方向键选择
按e键进入
找到ro(即readonly)改成rw(即read和write),并在rw后加init=/sysroot/bin/sh
sysroot原系统所在路径
添加完成按ctrl-x
此时不是原来的Linux系统,通过chroot /sysroot 切换到正常的Linux系统,即可以使用原来系统的命令
通过passwd root 修改密码,存在乱码通过LANG=en修改语言为英文
密码更改成功后,输入touch /.autorelabel ,然后重启客户机
六、光盘救援模式
救援模式:
跟单用户模式有点类似,它需要用系统盘来启动,是一个内存操作系统。
linux 运行级别 0 - 6 (7个级别)
centos6 运行级别
0:关机
1:单用户(无需用户认证)
2:多用户模式,命令行
3:多用户模式,命令行
4:多用户模式,命令行
5:多用户模式,图形
6:reboot重启
centos7 运行级别
ls -l /usr/lib/systemd/system/runlevel*target 查看
如何进入救援模式步骤:
1)关机 2)点右键 电源 启动时 进入bios 3)到bios里面,选择boot,把光驱放到第一位 按F10 点yes 4)选择troubleshuooting 回车 选择 rescue a centos system 5)选择continue 6)回车后,敲命令 chroot /mnt/sysimage 7) 执行passwd命令 8) 执行exit 然后执行 reboot 同时把光驱断开
关闭selinux
vi /etc/selinux/config 把 SELINUX=enforcing 改为 SELINUX=disabled 重启系统才会生效 临时改selinux的策略: setenforce 0 临时关闭,重启后,还会引用配置文件里面的配置 getenforce 查看你的linux状态
如果grub密码忘了,用光盘和U盘(带系统的)
电源处选择打开电源时进入固件或BIOS
进入BIOS,选择BOOT,通过+,-把CD-ROM调整到第一位置,F10保存退出
进入光盘引导,选择Trouble Shooting
下一步选择rescue a centos system
按提示,输入 1 继续回车,根据提示,在按回车,然后输入 chroot /mnt/sysimage 切换到原来的系统,然后使用passwd root 更改密码
然后exit退出,把光驱断开,输入reboot重启
七、克隆
克隆完成后,需要把网络配置文件中的UUID删除,IP地址更改,不然会和第一台机器冲突
八、Linux机器相互登录
命令:ssh -p <端口号> <username>@<ip_addr> 如果不加-p 默认端口号是22,不加username,默认以当前本地用户
ssh username@ip
ssh -keygen 生成密钥对,id_rsa为私钥,id_rsa.pub为公钥
将公钥复制到另一台机器,查看selinux是否开启,用getenforce,如果返回Enforcing说明是开启的,临时关闭命令:setenforce 0,在用getenforce查看,返回Permissive关闭状态