Linux远程密钥认证&单用户、救援模式&虚拟机克隆&Linux相互SSH登录

一、Linux远程SSH登录之密钥认证

        1.1、putty远程登录密钥认证

                putty密钥认证,首先需要用到putty密钥生成工具(PUTTYGEN.EXE)593a6cf7746b781bc5d48d840bb05ec37e2.jpg。然后是该工具的使用界面如图:

                        56bc80473475c46da6409cf9d2051e7892d.jpg

1、Generate 生成密钥 

2、Parameters 密钥类型相关参数

            感兴趣的话可以修改Parameters 密钥类型相关参数,默认值已经满足需求了。点击Generate生成后会出现如下画面:

dd44412ec423ec715f3890d4963c5adee2a.jpg

注:鼠标要在当前对话框晃动才能加快密钥的生成,否则密钥创建会很慢,甚至不生成创建。

              当密钥生成创建完成以后会给出如下画面: 

f0213c8a5afbe5383c00184f6b1c59bb503.jpg

1、Pubic key for pasting into OpenSSH authorized_keys file:

粘贴到OpenSSH authorized_keys文件的公开密钥

2、Key fingerprint 密钥相关信息(根本没什么修改的)

3、Key comment 定义密钥名称,便于区分

4、Key passphrase 给当前密钥设置密码

5、Confim passphrase 确认密钥的密码

6、Generate a public/private key pair  生成一个公钥/私钥对 (这里生成过了,可以重新生成)

7、Load an existing private key file 加载一个现有的私钥文件

8、保存生成的公/私钥   Save public key(保存公钥)Save private key (保存私钥)

           这里需要给3、Key comment设置名称,也可以保持默认。建议要给4、Key passphrase设置密码,5、Confim passphrase在确认一下设置的密码。选择保存公钥或私钥比较安全的路径并定义名称。

          现在已经有了一对公私钥,就要把公钥复制到Linux了。但是不小心把Puttygen.exe关闭了找不到公钥了怎么办?有两种方法可以找到生成的公私钥。具体如下:   

        重新打开Puttygen.exe593a6cf7746b781bc5d48d840bb05ec37e2.jpg如图:

94dcf548bef6cef3d99d5d98577f3d4c0b2.jpg

                1、Load an existing private key file 加载一个现有的私钥文件

           会弹出刚才保存的密钥存放窗口找到公钥或私钥文件(保存公钥是没有文件后缀名的,可以使用记事本打开。保存的私钥是以.ppk后缀名结尾的,也是可以直接使用记事本打开)。当你完成以后会提示输入密钥密码如下图,如果忘记密码,也没关系重新生成即可。

cff4e033d55b7f12c1293cb52c8f112126d.jpg

          接下来就能看到公钥了,如图:

    8944bbe7d1c4f559bf65aa217e30bda2b76.jpg

        接下来使用Putty.exe远程连接Linux并完成以下操作;

mkdir /root/.ssh                  #在root家目录下创建一个.ssh目录,这个目录默认不存在的。
chmod 700 /root/.ssh              #更改这个目录的权限
vi /root/.ssh/authorized_keys     #使用vi编辑器把公钥内容粘贴到/root/.ssh/authorized_keys文件内。

        b576300f02e8b038cad559f412020b5a964.jpg

        73183af9e39a272d587d48d36eea87a008c.jpg

        完成以后按下键盘左上角"Esc"键从编辑模式到命令模式,输入:wq回车确认即可完成

          ee79d512e74a29d53fdd8c672217fe755f6.jpg

        到这里还并未完成,还要关闭SELinux,SELinux是CentOS的一种安全机制,如果不关闭SELinux,使用密钥认证登录的时候会给出错误提示“server refused our key”,从而导致登录失败,运行命令如下:

sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinx/config     #这里使用sed把/etc/selinux/conf配置文件内容的SELINUX=enforcing替换成SELINUX=disabled,保障每次系统重启SELinux不会开启。重启才能生效。
setenfoce Permissive                                                  #不管系统是否重启SELinux当前都是处于关闭状态

      设置Putty通过密钥远程Linux

            打开Putty.exe按照图示来操作

def95343fb249391b80ea238403f9ccb0ed.jpg

a9d636b890d3b6d78fb516f616a71acff7b.jpg  094ef65461ee83ba8cd21fbb674688291a7.jpg        

            1、选中需要使用远程Linux使用密钥验证的服务器

            2、加载选中Linux服务器配置信息

            3、选中SSH 选项

            4、选中Auth选项 

            5、选中私钥文件路径

            6、选中私钥文件

            7、打开

            8、Session 会话
            9、Save 保存

            10、Open 打开

                                        2c3592f3c5cc2b542a3194d88075dd11b25.jpg       

输入密钥的密码完成密钥验证,就不需要root密码登录Linux了。

      1.2 Xshell远程连接Linux之密钥验证

            打开Xshell,选择工具—用户密钥管理者如图:

53d4471f6ef2de695332a5ec157bec0600d.jpg

8a8ab2dfe000657eb803cf9e3582d3dddc4.jpg

 2e81f05b8361b7b8bd10c6d6d597e3a0fa2.jpg

ee7819ce8dd7fcfe5bf1e3b0d34ad645ec9.jpg

2874ce731a47669911974f069bf0ae601c0.jpg

6570df50496e9d698745571aaa30c27bbc6.jpg

以上就是Xshell生成密钥的步骤,与Puttygen.exe类似

        接下来把Xshell生成的公钥粘贴到/root/.ssh/authorized_keys文件内。如图:

    ffc75caa31e237a76244ecaa2e1e840cb50.jpg

圈颜色部分是Putty远程公钥,第一行做备注(做备注可以使用中文,便于区别公钥);前提一定要是以#号开头。

            断开Xshell连接,然后修改连接信息如图:

97b0bd9a6b9e42a789d47a7b85be037def2.jpg    

19969ead5ef30792ec155a5e5b5c29b94f9.jpg

ef6ebfe6ab6ab52cea29223f715287685be.jpg

f91f970fbe7955557cfc94a5ab6a6ff52c0.jpg

            确定之后双击修改的连接 输入账号之后如图:

de9062ac0a671bf89abab6b2bf761262523.jpg

二、单用户、救援模式之忘记root密码

          2.1、单用户模式

             单用户模式是没有网络服务的,就不能远程操作了。这里就以虚拟机为例来进入系统的单用户模式。进入单用户模式就需要重启Linux系统,重启命令如下:

reboot                            #立即重启
shutdown -r now                   #立即重启
shutdown -r +1                    #一分钟以后重启
init 6                            #切换Linux的运行级别6 运行级别6表示重启。此命令的作用就是重启

c92737736f3dc2624900c16dd74f755ddc9.jpg

圈红的意思是:使用方向键 ↑ 或 ↓键做出选择,按下键盘'e'键编辑选中的选项,或者按下键盘'c'键进入命令提示行模式。默认3秒帮你自动选择默认选项。

        出现上述画面按下方向键 ‘↑’ 或 ‘↓’键,不让系统3秒帮你做出选择。选择第一项a6913d7ee91743088f009be023e858428e0.jpg在按下'e'键进入系统编辑模式如图:

65de820e43d92a54c8283427ae4f0e7f748.jpg

        需要使用方向键 '↓' 向下翻找到以linux16开始的行,如图:

57e29f24241f9d084c5f6b72bc5d878cabc.jpg

        移动光标到 ro rhgb quiet LANG=en_US.UTF-8处 396fb0cb2664ac9b0a1b4d7818b9898278c.jpg 把'ro'改成'rw init=/sysroot/bin/bash' 如图:

2a27c0e623ac268ea905390adceb1f3d4af.jpg

        根据提示按下 'Ctrl+x' 键8733b7f038a5d6c8879f1d3e40785979680.jpg开始启动单用户模式。等待几秒钟就出现下图 

7521bd22347a17759f920eef39bdc99cf4a.jpg

注意:这个系统不是安装在服务器硬盘的真实Linux系统,只是加载在内存的虚拟系统。修改root密码就需要加载安装在服务器硬盘内的Linux系统。

        需要执行chroot /sysroot/ 命令来挂载安装在服务器硬盘内真正的Linux操作系统。如图:

    375456fbd3245f05360a68e6fe9599624bf.jpg

        到这里就可以使用命令 passwd来修改root密码,如图:

2402c55db9c88c89ee83372ff8a4031a61e.jpg

        密码已经修改成功,这里就需要从服务器硬盘里的Linux系统登出(Crlt+d;exit;logout 三个命令任意一个都可以)执行重启命令(reboot;init 0;shutdown -r now)。

            注:之前已经把/etc/selinux/config配置文件内的SELINUX=enforcing改为SELINUX=disabled的话,就不需要执行 touch /.autorelabel 

                    没有处理SELinux开机关闭的操作,就必须执行 touch /.autorelabel 操作才能使修改的密码生效。

如果不确定的话,建议还是执行一下 touch /.autorelabel 

        重启完成出现登录界面,就可以使用新设置的密码登录了。

 

    2.2 救援模式

            如果GRUP加密了,不能使用单用户模式,那就要用到安装系统时光盘、U盘的救援模式。以虚拟机演示,关闭虚拟机,编辑虚拟机配置(选中需要使用救援的虚拟机右键-设置)如图:

f3a48555aa6ea1ec2158ae2debf1ddc4fdd.jpg

               98a65f571a78de909223157703c71be714c.jpg     

2de0d89ad94d64e2459b8a4e345f0edfa33.jpg

058451379d4e1e5ad453562a179dfd7bf84.jpg

                            把CD-ROM Drive按键盘"+"号调整到第一位后如图:

3bfd3efce160f8a16af7dfefcc6c302eeba.jpg

        之后自动重启,并以光盘启动(和初装系统同样画面)如图:

ab4e4ba6d6f15b0332f11200ac817b842b1.jpg

0557da07c40a04537f0dfab5b95bdb825ec.jpg

ad04945392989f9f485d3b5b40708a308f4.jpg

0ecf0baef8b3b1efedf6f7c6672d13a39c0.jpg

c3d6fca7d1f7c63089f08e5c9735d428158.jpg

到这步剩下的修改root密码和单用户模式一样,这里就不在演示了。修改完毕记要设置虚拟机硬件光驱开机不连接。如图:

a3cf8891933a89f95f2361ecbe513ec3310.jpg

9ea2ce02b2202ee29ae6d416d337ef69b83.jpg

三、虚拟机克隆

        虚拟机在克隆前要处于关闭状态,选中需要克隆的虚拟机名称鼠标右击-管理-克隆,如图:

5573ecece44c7bcbdc27adb1e574ceea8ee.jpg

b04c1f474abb82a22cf7924dd721ee57f69.jpg

00359d9c95a8e8f9d13cf3409bf9854be32.jpg

16734ed2431fb656f579510e8b0ec1c6f3a.jpg

4c686953e24b8ae7d1ebb84a242bf3cf11c.jpg

93dd329cc78709685bc4e7d95ffb62146b1.jpg

        启动克隆的虚拟机并做某些必要的设定,如图示:

7e7f7c4bc8f603015dbd655ae93b50e308d.jpg

81e8d57d25e4e7184ebf40a0b1f2d0beb36.jpg

1f5176cd51b211d57885c9d194884d3d475.jpg

1、重启网络服务;2、查看ip地址;3测试虚拟机能否上网

            为了变越区分主机,修改Linux主机名: 

hostnamectl set-hosname linux-202
vi /etc/hostname
#以上两条命令都可以修改主机名,任选一条即可。

50c387467be6305b4521037e0d063e9b85e.jpg

65b472b1bddb0c58541123cbbe64ebbc314.jpg

把另一台Linux主机名也用同样方法修改,这里就不演示了。

634838c880f1b8685c1edf672319a6bac1e.jpg

四、两台Linux相互登录

        在演示两台Linux相互登录前,不得不提一下关于命令行前面的内容说明:

[root@linux_201 ~]#               解释说明:[用户名@主机名 工作目录]#   
[root@linux_202 ~]# 
上面除了主机名不同其它信息相同,其中'~'表示用户的家目录,#表示为超级管理员命令提示符;后面会遇到$开始的命令提示符,$表示为普通用户的命令提示符。

        Xshell连接两台Linux主机任意一台,执行如下图:

2d3134110af65e86c5973b76bc068cdd053.jpg

    ssh的客户端都支持密钥认证,在Linux上也是支持密钥登录具体操作如下图:

e17407da64601c0073df688483f6233ed88.jpg

1、ssh-keygen 生成公、私钥的工具

2、询问是否更改私钥存放路径,不更改的话使用的路径为(/root/.ssh/id_rsa)

3、给私钥设置密码         4、再次确认私钥的密码 

圈红部分告诉你的公、私钥存放路径 ,其中id_rsa是私钥需要保存在本机的,id_rsa.pub是公钥需要复制到被远程的Linux服务器上

       查看生成的公钥并复制到粘贴板,如图:

b305e7bdd6581c0e580b8ca6f0be7d964ba.jpg    

然后断开Linux_202主机,回到Linux_201主机上执行 logout 命令即可,并使用vi编辑器编辑/root/.ssh/authorized_keys文件如图:

9c4f7905b9923994a7cd827848edc98041c.jpg

完成后按下'Esc'键,输入:wq  可以测试使用linux_202主机远程连接Linux_201主机测试,如下图

83b9f804ee0f62d86b394a509197912ebfc.jpg

ssh是Linux下的远程工具 

ssh远程的必要的4个条件 

主机名或ip用户密码port(端口)
192.168.8.201root******默认 22 

      在Linux远程时可以 缩写为 ssh 192.168.8.201   

       正常应该使用 ssh user@ip或主机名 -p 指定端口   为什么简写了,因为在当前Linux系统下命令行前面都会有用户信息[root@linux_22 ~]# 所以 ssh 192.168.8.201 就会以root账号去连接。-p是指定修改ssh服务端口是才使用,不加-p都是以22端口连接。


 

 

转载于:https://my.oschina.net/u/3992047/blog/2247882

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值