centos 7 ssh 免密码 centos7设置简单密码

老铁们,大家好,相信还有很多朋友对于centos 7 ssh 免密码和centos7设置简单密码的相关问题不太懂,没关系,今天就由我来为大家分享分享centos 7 ssh 免密码以及centos7设置简单密码的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

Linux集群内SSH免密码访问的快速配置方法

日常无论测试环境还是生产环境,在进行多台服务器(集群)安装配置的时候,经常需要对集群内服务器SSH访问做免密码设置。比如Hadoop、HBase等集群的安装配置,或者多台服务器为便于后续运维也需要做SSH免密配置。

结合近期搭建测试环境的过程,对如何快速给多台服务器做相互SSH访问免密配置做一个说明。主要分为几个步骤:修改主机名称、配置汇聚服务器的秘钥、汇聚其他服务器秘钥、拷贝汇聚秘钥文件、生成know_hosts文件、拷贝know_hosts文件。

1、集群规划

主机IP

主机名称

10.141.93.101

dmz01

10.141.93.102

dmz02

10.141.93.103

inside01

10.141.93.104

inside02

10.141.93.105

inside03

10.141.93.106

inside04

10.141.93.107

inside05

10.141.93.108

inside06

10.141.93.109

inside07

10.141.93.110

inside08

10.141.93.111

inside09

10.141.93.112

inside10

10.141.93.113

inside11

10.141.93.114

inside12

10.141.93.115

inside13

10.141.93.116

inside14

10.141.93.117

inside15

10.141.93.118

inside16

该集群共有18台服务器,划分为DMZ区2台,INSIDE区16台。主要用于web服务器和应用服务器、数据库、缓存等。为了部署应用、管理集群服务器方便,将18台服务器做SSH互访免密码配置。

2、修改主机名称

无论初装系统或云主机,其主机名称localhost或VM_75_173_centos都不容易进行区分服务器作用。所以便于安装、部署、维护方便,会重新修改主机名称hostname。

修改主机名称可以使用下面命令:

hostnamectl set-hostname inside01

使用上述命令修改主机名称后重新ssh登陆,即可看到主机名称已经修改。

3、配置汇聚服务器秘钥

此处所谓汇聚服务器就是选定集群中的一台服务器,然后其他服务器与其做SSH免密码信任。本文选定dmz01(10.141.93.101)作为汇聚服务器。关系图如下所示:

其他服务器向dmz01做SSH登陆免密码信任配置。此处dmz01就是汇聚服务器。

配置汇聚服务器秘钥的命令如下所示:

[root@dmz01~]#ssh-keygen-t rsa

Generating public/private rsa key pair.

Enter file in which to save the key(/root/.ssh/id_rsa):[Enter键]

Enter passphrase(empty for no passphrase):[Enter键]

Enter same passphrase again:[Enter键]

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

Your public key has been saved in/root/.ssh/id_rsa.pub.

The key fingerprint is:

43:0d:08:18:ec:9e:d6:1f:ea:5f:04:30:0f:66:26:41 root@dmz01

The key's randomart image is:

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

| oE+O...|

| o==. o|

|. o..|

|. o|

|. o S|

|+....|

|. o..|

|...|

|....|

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

进入/root/.ssh目录,拷贝生成authorized_keys文件,使用命令如下:

cat id_rsa.pub authorized_keys

结果如下所示:

[root@inside01.ssh]# ll

total 12

-rw-r--r-- 1 root root 395 Nov 12 16:25 authorized_keys

-rw------- 1 root root 1675 Nov 12 16:24 id_rsa

-rw-r--r-- 1 root root 395 Nov 12 16:24 id_rsa.pub

4、拷贝其他服务器秘钥

经过第3节配置汇聚服务器秘钥后,需要依次配置dmz02,inside01,,inside16等17台服务器的秘钥。方法同第三节命令。

配置完成其他17台服务器的秘钥后,需要将该17台服务器的秘钥复制拷贝到汇聚服务器dmz01上。其拷贝命令如下:

[root@dmz01.ssh]# ssh-copy-id-i dmz01

[root@inside01.ssh]# ssh-copy-id-i dmz01

依次将17台的秘钥汇聚拷贝到dmz01上。

5、拷贝汇聚秘钥文件

从汇聚服务器将汇聚的秘钥文件依次拷贝到其他17台服务器的/root/.ssh目录下面,命令如下所示:

[root@dmz01.ssh]# scp authorized_keys dmz02:/root/.ssh/

[root@dmz01.ssh]# scp authorized_keys inside01:/root/.ssh/

[root@dmz01.ssh]# scp authorized_keys inside16:/root/.ssh/

root@inside16's password:

authorized_keys 100% 7104 6.9KB/s 00:00

如上所示进行scp拷贝秘钥文件authorized_keys,该过程需要输入密码。

Ssh免密码验证:

[root@dmz01.ssh]# ssh dmz02

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

ECDSA key fingerprint is 22:49:b2:5c:7c:8f:73:56:89:29:8a:bd:56:49:74:66.

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

Warning: Permanently added'dmz02,10.141.68.179'(ECDSA) to the list of known hosts.

Last login: Sat Nov 12 17:19:19 2016 from 10.141.93.186

由上面可以看出ssh dmz02,ssh登陆dmz02服务器时,没有再需要输入密码。但是提示需要将dmz02添加到dmz01的know hosts列表文件中。这样下次ssh访问dmz02就不会再提示需要加入know hosts列表了。

6、生成know_hosts文件

从汇聚服务器依次ssh其他17台服务器,经过前面的免密码设置。不需要再输入密码,但是都有加入know hosts列表的提示。

注意:为了把自己dmz01也加入到know hosts文件中,也需要[root@dmz01.ssh]# ssh dmz01一下。

最后生成的know_hosts文件内容如下所示:

查看know_hosts文件行数:

[root@dmz01.ssh]# wc-l known_hosts

18 known_hosts

可以看出每个主机一行内容,表示dmz01知道了包括自己在内的所有18台服务器。

7、拷贝know_hosts文件

经过第六节生成18台服务器对dmz01的know host设置,将dmz01的/root/.ssh/know_hosts文件scp拷贝到其他17台服务器上。

ssh免密码登陆验证:

[root@dmz01.ssh]# ssh inside10

Last login: Tue Nov 15 15:01:18 2016 from 10.141.93.186

[root@inside10~]# ssh inside15

Last login: Sat Nov 12 17:52:29 2016 from 10.141.93.186

[root@inside15~]# ssh dmz02

Last login: Sat Nov 12 20:05:59 2016 from 10.141.93.186

[root@dmz02~]# ssh dmz01

Last login: Thu Nov 17 23:56:05 2016 from 218.10.89.246

[root@dmz01~]# ssh inside15

Last login: Fri Nov 18 00:23:54 2016 from 10.141.114.152

ssh免密码登陆顺序:dmz01inside10inside15dmz02dmz01inside15。

8、总结

本文主要涉及以下几个命令:

hostnamectl set-hostname inside01

ssh-keygen-t rsa

ssh-copy-id-i dmz01

这篇文章就介绍到这了,希望大家以后多多支持我们。

Centos7SSH密钥登陆及密码密钥双重验证详解

一、首先登陆centos,切换用户,切换到你要免密码登陆的用户,进入到家目录,以下我以root为例,命令:

su root

cd~

二、创建钥匙,命令:ssh-keygen-t rsa,一路按Y搞定

三、按照流程走完后会在~/.ssh目录下(用户所在家目录下的.ssh目录)看到id_rsa, id_rsa.pub文件第一个是私有密钥第二个是公共密钥

四、修改SSH配置文件,命令:vim/etc/ssh/sshd_config

#禁用root账户登录,如果是用root用户登录请开启

PermitRootLogin yes

#是否让 sshd去检查用户家目录或相关档案的权限数据,

#这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。

#例如使用者的~.ssh/权限设错时,某些特殊情况下会不许用户登入

StrictModes no

#是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。

#至于自制的公钥数据就放置于用户家目录下的.ssh/authorized_keys内

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile.ssh/authorized_keys

#有了证书登录了,就禁用密码登录吧,安全要紧

PasswordAuthentication no

五、因为在第四步指定了AuthorizedKeysFile的放置位置为.ssh/authorized_keys,所以还需把公钥数据id_rsa.pub附加到 authorized_keys这个档案内才行,命令:

cd~/.ssh

cat id_ras.pub>> authorized_keys

重启SSH服务,命令:systemctl restart sshd.service

六、下载私钥,这里我使用了rz/sz工具(你也可以使用其他方式),系统默认没有安装,先安装,命令:yum-y install lrzsz

SecureCRT配置:选项→会话选项→X/Y/Zmodem,修改上传和下载的目录。

现在开始下载,命令:

cd~/.ssh

sz id_ras

然后到你之前配置的下载目录去找,把私钥导入到SecurtCRT,方法:

选项→会话选项→SSH2,在鉴权一栏中点击公钥(注意因为前面已经禁用了密码登陆,我们还得把密码这一栏的勾去掉,否则会无法登陆),点属性,点击使用会话公钥设置,然后在下方的使用身份或证书文件中,选择你刚才下载来的私钥文件,点确定即可。

七、以上所有配置完成,看网上别的教程还说要注意各文件权限问题,我做实验的过程没有遇到,也可能我使用的是root用户的原因,如果你们在过程中有权限报错,建议权限设置:

~/.ssh/ 700

.ssh/authorized_keys 644

.ssh/id_rsa 600且属于你当前要添加的用户

八、让服务器更安全,开启密码和证书双重验证,先修改SSH配置文件:

vim/etc/ssh/sshd_config

PasswordAuthentication改为yes

然后再加一条:uthenticationMethods publickey,password

重启SSH服务:systemctl restart sshd.service

SecureCRT配置:因为之前在第六步中把密码去掉了,还得把它再勾起来,选项→会话选项→SSH2,把密码这一栏勾起来即可。

个人经验:在配置完成后不要关闭当前SecurtCRT的连接窗口,你可以使用新建连接尝试登陆,以免配置出错,造成服务器无法登陆。

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

作为系统管理员,你计划在 Linux上使用 OpenSSH,完成日常工作的自动化,比如文件传输、备份数据库转储文件到另一台服务器等。为实现该目标,你需要从主机 A能自动登录到主机 B。自动登录也就是说,要在 shell脚本中使用ssh,而无需要输入任何密码。

本文会告诉你怎样在 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是用来将本地公钥拷贝到远程的 authorized_keys文件的脚本命令,它还会将身份标识文件追加到远程机器的~/.ssh/authorized_keys文件中,并给远程主机的用户主目录适当的的权限。

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.10The 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)? yesWarning: Permanently added'192.168.0.10'(RSA) to the list of known hosts.root@192.168.0.10's password:Last login: Thu Dec 10 22:04:55 2015 from 192.168.0.1[root@node2~]#

步骤二:

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

[root@node1~]# ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key(/root/.ssh/id_rsa):Enter passphrase(empty for no passphrase):Enter same passphrase again:Your identification has been saved in/root/.ssh/id_rsa.Your public 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.localThe 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.10root@192.168.0.10's password:Now try logging into the machine, with"ssh'192.168.0.10'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.

步骤四:

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

[root@node1~]# ssh root@192.168.0.10Last login: Sun Dec 13 14:03:20 2015 from www.ehowstuff.local

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

阅读剩余
THE END