背景:

工作中,对于Linx服务器通常的操作是远程操作或者以一台Linux为跳板连接到另一台服务器上。这个过程中,主要使用的Linuxssh服务。不管是用工具还是使用跳板,连接时候都需要输入用户名和密码,比较麻烦,有没有一种一点就连接的方法呢?答案是确定的,通过密钥登录。本文档解决的就是这个问题。

一、环境规划

系统:Red Hat Enterprise Linux192.168.237.131

远程工具:putty

使用的服务:SSH服务

二、前期准备

1、检查Linux是否已启动SSH服务,一般情况下SSH包都已经安装

#chkconfig –list | grep sshd    //查看系统当前有无启动

           wKiom1YHT__BMPbRAAA2oMVDFdI859.jpg

若无启动,执行下面的命令:

#service sshd start

     wKioL1YHUAbzHFa2AAAnepzsOgw274.jpg

2、安装putty

注意:这里安装的putty必须是全组件安装,安装完之后里面包含以下组件:

                wKiom1YHT__ANV-tAAA3FqhJH_E466.jpg

3、关闭selinux

查看状态:getenforce

暂时关闭:setenforce 0   //系统重启后将丢失设置

永久关闭:/etc/selinux/config,将其中的“SELINUX=Enforceing”改为“SELINUX=disabled”

三、远程登录Linux

1、PuTTY远程登录——使用密钥登录

1)、生成密钥对——PuTTYgen

在【开始】-PuTTY】找到“PuTTYgen”,打开它,点击【Generate】按钮,开始生成密钥对,来回晃动鼠标加快速度。如下图:

      wKioL1YHUAbTsmnfAAHpUoKZIOM748.jpg

几点说明:

Key comment:可以保持不变也可以自定义,对密钥的介绍

Key passphrase:给密钥设置密码,建议设置,保证密钥安全。不作强制要求。

Comfirm passphrase:再次输入刚设置的密码。

2)、保存密钥

点击【Save private key,这是私钥,选择一个存放路径并自定义名称,默认后缀名名为.ppk,建议保存到一个相对安全的文件夹中。这里保存名为‘192.168.237.131.ppk’

3)、复制公钥到Linux

在上图密钥生成界面,在Key下面有个很长的字符串,这个就是公钥,复制公钥。

登录到Linux中,进行下面的操作

查看是否存在.ssh目录:ll –a |grep .ssh

#mkdir /root/.ssh    //若不存在,新建;若已存在,跳过

#chmod 700 /root/.ssh  //修改.ssh权限,若已经存在.ssh查看其权限是否为700

        wKioL1YHUAajkICwAABLcJL3CwM370.jpg

#vim /root/.ssh/authorized_keys  //‘i’进入编辑模式,粘贴刚复制内容。粘贴后,按【Esc】键后,输入‘:wq’保存。

4)、设置Putty通过密钥登录

打开PuTTY软件,点击“Session”,输入要登录的IP

        wKiom1YHT__w9qF9AAGUnscDPTY229.jpg

点击“Connection”-“Data”,按下图提示,输入登录时使用的用户名,这里为“root”

         wKioL1YHUAajdxA6AAFq8COA0Fs575.jpg

点击“Connection”-“SSH”-“Auth”,照下图位置选择之前保存的私钥文件

        wKiom1YHUaeTdgPOAAGv4VM69KQ078.jpg

这一切设置完后,点击“Session”,点击“Save”,将之前的设置全部保存         

       wKioL1YHUa6C08adAAGxWMD2_iY126.jpg

5)、远程登录

每次需要连接的时候,选择保存的Session,点击【Load】,再点击【Open

       wKiom1YHUafwRXWBAADHYuUE8e0365.jpg

此时登录,将不再要求输入用户名和密码,直接登录。

2、两台Linux之间的登录

1)生成密钥对

#ssh-keygen

       wKioL1YHUa6i-2UGAAF5qK0m8Qw005.jpg

/root/.ssh/下生成两个文件id_rsaid_rsa.pub

          wKioL1YHUa7Dta2RAAAloL0BsvY654.jpg

2)、复制公钥到另一台Linux上

将公钥id_rsa.pub的内容复制到另外一台Linux服务器上,方法同“1PuTTY远程登录——使用密钥登录-3)、复制公钥到Linux

3)、登录Linux

#ssh 192.168.237.130

     wKiom1YHUaixR_waAABONgJxBKw993.jpg

此时不需要输入任何密码。