对于centos配置ssh无密码访问感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解centos配置ssh免密码登录,并且为您提供关于CentOS6.4配置无密码SSH、Centos7SSH
对于centos配置ssh无密码访问感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解centos配置ssh免密码登录,并且为您提供关于CentOS 6.4 配置 无密码 SSH、Centos 7 SSH 无密码登录、CentOS 7 实现ssh无密码登录、CentOS SSH无密码登录原理的宝贵知识。
本文目录一览:- centos配置ssh无密码访问(centos配置ssh免密码登录)
- CentOS 6.4 配置 无密码 SSH
- Centos 7 SSH 无密码登录
- CentOS 7 实现ssh无密码登录
- CentOS SSH无密码登录原理
centos配置ssh无密码访问(centos配置ssh免密码登录)
在linux上部署hadoop或者其它需要远程访问调用的程序,需要配置ssh无密码访问。
1.简介
centos一般都装有sshclient和sshserver,一个是服务端接收ssh协议消息,一个是客户端给sshserver发送shell命令。
常用的命令ssh、scp等命令都是sshclient中的工具。
所以要配置无密码访问,前提是一定要安装sshclient和sshserver
2. 环境
192.168.1.81
192.168.1.82
192.168.1.83
目标:配置81无密码访问82、83
如果你要配置docker里面的无密码访问或者你的机器里面没有ssh服务,需要安装一下。
yum install -y openssh-server openssh-clients
openssh-server 是一个开启的接收ssh访问的服务。
openssh-clients 有ssh中的各种工具 scp ssh-keygen等
3.配置无密码访问
方法1.命令设置
##在81上键入下面命令,会有三个参数需要填写,用默认的就行,一路enter按下去 ssh-keygen ssh-copy-id 192.168.1.82 ssh-copy-id 192.168.1.83
方法2.手动设置
方法2方便知道无密码访问的原理,知道哪个文件是公钥哪个文件是私钥,可以手动设置。
##在81上键入下面命令,会有三个参数需要填写,用默认的就行,一路enter按下去 ssh-keygen ##上面命令结束后,进入到下面的文件夹 cd /root/.ssh ##可以看到里面两个文件。一个公钥一个私钥,可以理解为古代调动兵权的虎符,公钥和私钥是一对的,只有公钥和私钥配对上了,才能进行访问。另外公钥和私钥的生成是根据一定的算法生成的,每次都不一样,会加入机器的因子,也就是说一台机器上生成的公钥私钥,放在另外一组机器上是不行的。 id_rsa为私钥,放在访问端的,相当于钥匙 id_rsa.pub为公钥,放在所有被访问端的,相当于锁。 -rw-------. 1 root root 1679 Sep 7 16:48 id_rsa -rw-r--r--. 1 root root 393 Sep 7 16:48 id_rsa.pub ##将公钥重命名拷贝一个authorized_keys cp id_rsa.pub authorized_keys ##用scp将authorized_keys拷贝到82、83的/root/.ssh目录下面就可以无密码访问了 scp authorized_keys 192.168.1.82:/root/.ssh/ scp authorized_keys 192.168.1.83:/root/.ssh/
3.测试
ssh 192.168.1.82 ssh 192.168.1.83
不用输入密码就可以登录表明成功。
CentOS 6.4 配置 无密码 SSH
CentOS 6.4 对 网络管理相当严格。单纯的$ ssh-keygen -t dsa -P '''' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
命令没办法做到无密码SSH登陆。需要做三件事情。
1、关闭SElinux
# vi /etc/selinux/config
设置SELINUX=disabled
2、更改权限
$ chmod 600 ~/.ssh / authorized_keys
$ chmod 700 ~/.ssh
3、注销再登陆
用ssh localhost再试试,OK。
转帖,备用。忘了出处了
Centos 7 SSH 无密码登录
Centos 7 SSH 无密码登录
需求
本人购买的阿里云 ECS, 用来做一些技术训练与部署自己开发的应用,所以要经常通过 SSH 连接到服务器进行应用部署与维护。
虽然 xshell 有 用户名 / 密码 加密保存的功能,但个人更喜欢 putty (没有多余的功能,专注工作),而且 xshell 没有 mac 版。
所以,迫切需要有一种方法能够免密码登录到云服务器,而且随处可用
方案
使用 "公私钥" 认证的方式来进行 ssh 登录
原理
-
客户端上创建一对 RSA 公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
-
把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
-
当 ssh 登录时,ssh 程序会发送私钥去和服务器上的公钥做匹配,如果匹配成功登录成功
实现
windows (基于 putty)
-
下载 puttygen.exe, 用于生成 RSA 公私钥
-
运行 puttygen.exe, 点击 Generate, 如下图:
然后,在空白区随意移动鼠标,puttygen.exe 会根据鼠标移动生成随机数,用来生成 RSA 公私钥
生成完成后,如下图所示:
-
将上一步生成的 Public Key 全部 copy, 然后放到服务器端~/.ssh/authorized_keys 文件里,一个 Public Key 占据一行,如下图所示:
-
点击 puttygen.exe 的 Save private key, 将 RSA 私钥保存成一个文件
-
打开 putty , 操作步骤如下:
- 会话 :填写服务器 IP 、Port
- 连接→数据:填好自动登陆用户名
- 连接→SSH→认证:选择认证私钥文件 (第 4 步保存的文件)
- 会话:填写会话名称,保存
-
完成,直接双击会话名称即可免密码登录成功
linux
由于现在家里没有 linux 机器,而且 mac 也被老婆霸占,所有 linux 方法敬请期待 (原理一样,步骤更少,随便在 google 在百度一下就行)。
CentOS 7 实现ssh无密码登录
cd ~ 进入根目录。
(使用ls -a或者 ls -la 能够看到当前文件夹下的所有文件包含隐藏文件夹等)
我们首先使用ls -la 发现并没有.ssh的文件夹存在。
在终端输入 ssh localhost
会出现提示我们是否继续 需要输入yes继续,然后需要我们输入密码,这就是没有配置无密码登录的情况。
cd ~ 进入根目录
此时我们 ls -la回车就能看到一个 .ssh的文件夹被创建出来了。
我们cd .ssh进入该文件夹。ls回车,会发现存在一个名为known_hosts的文件。
cat known_hosts回车 就会显示localhost 以及一串信息。
输入
[hadoop@hadoop000 ~]$ ssh-keygen -t rsa 一路回车
然后我们再进入 .ssh 文件夹 ls查看就会发现
id_rsa 这是私钥
id_rsa.pub 这是公钥
需要他们使用的话,我们需要把公钥写入到一个文件内:
cat id_rsa.pub >> authorized_keys
建议修改该文件的权限:chmod 600 authorized_keys
测试:
[root@hadoop000 .ssh]# ssh hadoop000
Last login: Tue Apr 16 19:05:53 2019 from hadoop000
[root@hadoop000 ~]#
无需再输入密码即可登录,测试成功。
ps.没有ssh服务需要先yum或者其他方式安装ssh服务先。
CentOS SSH无密码登录原理
原理简介
为了便于理解,假设需要在hadoop148这台机器上可以通过无密码登录的方式连接到hadoop107上。
首先在 hadoop148上生成一个密 钥对,包括一个公钥和一个私钥,并将公钥复制到hadoop107上。
然后当 hadoop148通 过 SSH 连接hadoop107机器时, hadoop107机器 就会生成一个随机数并用 hadoop148的公 钥对随机数进行加密,并发送给 hadoop148。
最后 hadoop148收到加密数之后再用私 钥解密,并将解密数回传给hadoop107, hadoop107确认解密数无误之后就允许 hadoop148不 输入密码进行连接了
配置
具体步骤
1 、 登录hadoop148,执行命令 ssh-keygen -t rsa 之后一路回 车,查看刚生成的无密码钥对: cd .ssh 后 执行 ll
2 、把 id_rsa.pub 追加到授权的 key 里面去。 执行命令 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
3 、修改权限: 执行 chmod 600 ~/.ssh/authorized_keys
常见问题
问题现象:
hadoop148机器已经生产rsa密钥
且已经将public key添加到serverB机器/root/.ssh/authorized_keys
但是ssh root@hadoop107机器时仍然需要输入密码,即无密码认证失败,
分析与处理:
第一步:查看权限
用ssh -v debug访问,日志如下,但是从日志看不到失败原因,只知道在用publickey认证时,对端没有reply;
再查看/var/log/secure日志
发现所有用户的HOME目录应该是700权限,否则会引起很多问题,这个问题同样是由于这个原因
最终,执行chmod 700 root后解决
关于权限问题总结如下:
1) .ssh目录的权限必须是700
2) 用户目录的权限必须是700,比如我是用root用户操作的,则/root的权限必须是700
3) .ssh/authorized_keys文件权限必须是600
第二步:查看安全上下文
如果通过改变权限还不能解决问题,可以尝试如下方法:
首先用ls -laZ检查了一下.ssh目录,果然不是ssh_home_t,则需要使用restorecon命令对.ssh目录的context进行恢复。命令是:restorecon -r -vv /root/.ssh
第三步:分析/var/log/audit/audit.log日志
修改目录用户权限
chown -R root.root /root
我们今天的关于centos配置ssh无密码访问和centos配置ssh免密码登录的分享就到这里,谢谢您的阅读,如果想了解更多关于CentOS 6.4 配置 无密码 SSH、Centos 7 SSH 无密码登录、CentOS 7 实现ssh无密码登录、CentOS SSH无密码登录原理的相关信息,可以在本站进行搜索。
本文标签: