如何在 CentOS / RHEL 上设置 SSH 免密码登录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 CentOS / RHEL 上设置 SSH 免密码登录相关的知识,希望对你有一定的参考价值。

参考技术A

本文会告诉你怎样在 CentOS/RHEL 上设置 SSH 免密码登录。自动登录配置好以后,你可以通过它使用 SSH (Secure Shell)和安全复制 (SCP)来移动文件。

SSH 是开源的,是用于远程登录的最为可靠的网络协议。系统管理员用它来执行命令,以及通过 SCP 协议在网络上向另一台电脑传输文件。

通过配置 SSH 免密码登录,你可以享受到如下的便利:

    用脚本实现日常工作的自动化。

    增强 Linux 服务器的安全性。这是防范虚拟专用服务器(VPS)遭受暴力破解攻击的一个推荐的方法,SSH 密钥单凭暴力破解是几乎不可攻破的。

    什么是 ssh-keygen

    ssh-keygen 是一个用来生成、创建和管理 SSH 认证用的公私钥的工具。通过 ssh-keygen 命令,用户可以创建支持SSH1 和 SSH2 两个协议的密钥。ssh-keygen 为 SSH1 协议创建 RSA 密钥,SSH2 则可以是 RSA 或 DSA。

    什么是 ssh-copy-id

    ssh-copy-id 是用来将本地公钥拷贝到远程的 authorizedkeys 文件的脚本命令,它还会将身份标识文件追加到远程机器的 ~/.ssh/authorizedkeys 文件中,并给远程主机的用户主目录适当的的权限。

    SSH 密钥

    SSH 密钥为登录 Linux 服务器提供了更好且安全的机制。运行 ssh-keygen 后,将会生成公私密钥对。你可以将公钥放置到任意服务器,从持有私钥的客户端连接到服务器的时,会用它来解锁。两者匹配时,系统无需密码就能解除锁定。

    在 CentOS 和 RHEL 上设置免密码登录 SSH

    以下步骤在 CentOS 5/6/7、RHEL 5/6/7 和 Oracle Linux 6/7 上测试通过。

    节点1 : 192.168.0.9 节点2 : 192.168.l.10

    步骤1 :

    测试节点1到节点2的连接和访问:

    [root@node1 ~]#ssh root@192.168.0.10

    The authenticity of host '192.168.0.10 (192.168.0.10)' can't be established.

    RSA key fingerprint is 6d:8f:63:9b:3b:63:e1:72:b3:06:a4:e4:f4:37:21:42.

    Are you sure you want to continue connecting (yes/no)? yes

    Warning: Permanently added '192.168.0.10' (RSA) to the list of known hosts.

    root@192.168.0.10's password:

    Lastlogin:ThuDec1022:04:552015from192.168.0.1

    [root@node2 ~]#

    步骤二:

    使用 ssh-key-gen 命令生成公钥和私钥,这里要注意的是可以对私钥进行加密保护以增强安全性。

    [root@node1 ~]#ssh-keygen

    Generatingpublic/private rsa key pair.

    Enterfilein which to save the key (/root/.ssh/id_rsa):

    Enter passphrase (emptyforno passphrase):

    Enter same passphrase again:

    Your identification has been saved in/root/.ssh/id_rsa.

    Yourpublic key has been saved in/root/.ssh/id_rsa.pub.

    The key fingerprint is:

    b4:51:7e:1e:52:61:cd:fb:b2:98:4b:ad:a1:8b:31:6d root@node1.ehowstuff.local

    The key's randomart image is:

    +--[ RSA 2048]----+

    | . ++ |

    | o o o |

    | o o o . |

    | . o + .. |

    | S . . |

    | . .. .|

    | o E oo.o |

    | = ooo. |

    | . o.o. |

    +-----------------+

    步骤三:

    用 ssh-copy-id 命令将公钥复制或上传到远程主机,并将身份标识文件追加到节点2的 ~/.ssh/authorized_keys 中:

    [root@node1 ~]#ssh-copy-id-i ~/.ssh/id_rsa.pub 192.168.0.10

    root@192.168.0.10's password:

    Now try logging into the machine, with "ssh '192.168.0.10'", and check in:

    .ssh/authorized_keys

    to make sure we haven't added extra keys that you weren't expecting.

    步骤四:

    验证免密码 SSH 登录节点2:

    [root@node1 ~]#ssh root@192.168.0.10

    Lastlogin:SunDec1314:03:202015from www.ehowstuff.local

    我希望这篇文章能帮助到你,为你提供 SSH 免密码登录 CentOS / RHEL 的基本认知和快速指南。

记Centos7和RHEL连接不上网络

一 、前言

  1. 我是把Linux系统安装在虚拟机中的,用的是VMware。
  2. 在终端工具和操作界面中。
  3. VMware里面采用的网络适配器是NAT技术。
  4. 标题中的Centos和RHEL区别就不多说了,自行百度。
ping不通域名和IP地址;并且ifconfig命令回车之后并不会出来正确的IP地址。
ip address 这个命令也不会出来正确的结果

二、如何解决

第一步:

输入 “ifconfig”  或者输入 “ifconfig -a”命令功能;或者 ping 地址

关于ifconfig命令:

功能:
ifconfig?命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
命令参数:
up?               启动指定网络设备/网卡。
down?             关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信          息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。
arp?              设置指定网卡是否支持ARP协议。
-promisc?          设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包
-allmulti?         设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包
-a?                显示全部接口信息
-s?                 显示摘要信息(类似于?netstat?-i)
add?                给指定网卡配置IPv6地址
del?                删除指定网卡的IPv6地址
                  <硬件地址>?配置网卡最大的传输单元
mtu<字节数>?          设置网卡的最大传输单元?(bytes)
netmask<子网掩码>?设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;
如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。
tunel                ?建立隧道
dstaddr?              设定一个远端地址,建立点对点通信
-broadcast<地址>?为指定网卡设置广播协议
-pointtopoint<地址>?为网卡设置点对点通讯协议
multicast?            为网卡设置组播标志
address?              为网卡设置IPv4地址
txqueuelen<长度>        ?为网卡设置传输列队的长度

第二步:

以下仅仅为个人问题解决方法

一、打开终端
二、输入命令            cd ?/etc/sysconfig/network-scripts/
                     (接着输入命令 ls 查看文件夹下的东西)                   
三、继续输入命令         vi ifcfg-eno16777736
                     ( eno 后面的数字并非都一致;可以采用 Tab 键自动补全)
四、更改文件内容                                  

技术图片

五、保存退出之后输入 “service network restart”  重启网络服务

此时,问题应该解决了!你可以通过远程工具连接,也可以ping通网络地址了!

三、后记

因为上述所说的方法是针对于我个人所遇到的问题,所以此方法是有局限性的;如果你也是和我一样遇到的上述问题,但是通过这种方法未解决的话,你可以参考一下下面的两篇文章。

转载:

Centos7网络配置及静态IP配置: https://my.oschina.net/calmsnow/blog/3002952

Centos7修改网卡类型为ifcfg-eth0: https://my.oschina.net/calmsnow/blog/3000435

以上是关于如何在 CentOS / RHEL 上设置 SSH 免密码登录的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CentOS 8/RHEL 8 上安装和使用 Cockpit

如何在 CentOS / RHEL 中启用/禁用 CPU(限制 CPU 数量)

如何在CentOS/RHEL 7上借助ssm管理LVM卷

如何在CentOS / RHEL 7/6/5安装Postfix

求助RHEL7/CENTOS7下,在/etc/profile里面设置环境变量不生效问题

如何在RHEL/CentOS 7以及Fedora中配置FirewallD