Centos7通过SSH使用密钥实现免密登录
日常开发中,难免会有登录服务器的操作,而通过ssh方式登录无疑是比较方便的一种方式。
如果登录较频繁,使用密钥实现免密登录无疑更是方便中的方便。因此本文就简单说一说如何实现免密登录。
一、安装配置ssh服务
默认情况下Centos7是安装了ssh服务的需要做的就是启动服务即可
当然,启动之前,可能需要对ssh服务进行一下基本配置,确保可以支持免密的登录
vi /etc/ssh/sshd_config
编辑ssh服务的配置文件,将下边红框中的部分前边的注释去掉

开启监听端口和地址

允许远程登录,允许免密登录

允许使用密码
以上操作完成之后,基本上就可以使用ssh各种登录了。
保存退出之后,重启(启动)sshd服务
systemctl restart sshd
服务配置完成之后,就开始向下执行了。
二、生成密钥公钥
1、服务器端,确认需要通过哪个账户(用户)免密登录,则切换到该用户
sudo su - eleven
当前切换到eleven账户,默认在eleven用户的默认用户目录
然后执行生成密钥公钥命令
ssh-keygen -t rsa -C "任意字符(说明)一般邮箱用户名等"
执行后,连续三次回车即可,完成密钥公钥文件的生成。
执行完成后,会在本地生成.ssh目录(默认隐藏,可以通过ls -a查看)
访问.ssh目录,可以看到id_rsa和id_rsa.pub两个文件
其中id_rsa是密钥文件,自己保存好不要公开,而id_rsa.pub文件是公钥,里边的内容可以告诉任何人
2、客户端生成密钥公钥
在客户端,在终端中,当前用户输入同样的命令ssh-keygen -t rsa -C "邮箱或者用户名"
操作和服务端完全一样,最终同样生成.ssh目录和id_rsa和id_rsa.pub两个文件。
到此,就完成了密钥和公钥的生成。
三、实现免密登录
1、服务器自己可以登录
先将本地的公钥文件复制到远程服务器上
scp ~/.ssh/id_rsa.pub eleven@192.168.1.202:/home/eleven/id_rsa.pub
将本地生成的公钥文件,通过scp命令,复制到远程服务器eleven用户的目录中
登录到远程服务器,切换到eleven用户
cat id_rsa.pub >> .ssh/authorized_keys
将客户端的公钥文件的内容追加到eleven用户目录的.ssh目录中的authorized_keys中(该文件不存在则创建新文件)
做到这里,就基本上完成了免密登录的配置。
但是,到客户端通过ssh eleven@192.168.1.202登录,依然提示需要输入密码,貌似没有效果。
那么问题在哪里呢?
一般只要确认操作过程没有任何问题和错误,并且步骤等不缺少,那么极有可能就是权限的问题
此时,需要修改两个权限
chmod 600 authorized_keys
chmod 700 .ssh
这是linux的安全要求,权限不对,是不能让免密登录生效的。
到这里,就完成了免密的登录所有操作,可以在客户端通过ssh登录了。
并且,在第一次登录时会提示让输入(yes/no)直接输入yes即可。
登录成功以后,会在服务器的.ssh目录中生成一个known_hosts文件
记录每个登录的公钥,正常情况可以忽略,因为这个出了什么问题,删除该文件即可。
2、远程服务器自己不能登录
此时需要查看自己本地的id_rsa.pub文件的内容,并复制内容发给能访问远程服务器的人,让其在远程服务器的authorized_keys文件中加上你的id_rsa.pub的内容即可。
当有多客户端需要连接该远程服务器时,只要把所有客户端的id_rsa.pub内容都放到authorized_keys中即可。每个公钥占一行
Centos7通过SSH使用密钥实现免密登录的更多相关文章
- Centos7 通过SSH使用密钥实现免密登录
Public Key认证的主要魅力在于认证时承诺不必提供密码就能够同远程系统建立连接. Public Key认证的基础在于一对密钥,public key和private key,public key对 ...
- Linux服务器在SSH客户端如何实现免密登录
一.SSH客户端Setting 配置 key , 创建生成公钥导出文件. 二.服务器 master 上生成密钥 通过执行命令 ssh-keygen -t rsa 来生成我们需要的密钥. ssh-ke ...
- ssh登录原理及免密登录配置
ssh登录原理参考: https://www.cnblogs.com/hukey/p/6248468.html ssh登录有两种方式: 1):用户名密码登录 2):基于秘钥的登录 ssh免密登录指的就 ...
- linux上ssh免密登录原理及实现
因为我的服务器集群需要回收日志到中央进行统一处理,所以需要建立ssh互信关系实现免密登录.关于ssh的使用大家可能都很熟悉了,我们今天主要来讲下ssh连接和免密登录的原理. scp 传输文件 scp( ...
- Linux的SSH免密登录(一)
1.从cp/scp命令出发 scp(secure copy)是linux系统下基于ssh登录进行安全的远程文件拷贝的命令. 1. 传递文件到远程 scp local_file remote_usern ...
- ansible用authorized_key模块批量推送密钥到受控主机(免密登录)(ansible2.9.5)
一,ansible的authorized_key模块的用途 用来配置密钥实现免密登录: ansible所在的主控机生成密钥后,如何把公钥上传到受控端? 当然可以用ssh-copy-id命令逐台手动处理 ...
- SSH免密登录的配置
ssh登录 登录ssh一般情况有两种方法 密码登录 秘钥登录(免密) 大部分情况我们选择都是输入密码登录,平常使用暂时没有遇到什么问题.最近我编写了一些使用scp来传输文件的脚本,每一次scp都需要输 ...
- SSH免密登录机制
SSH免密登录机制:(见下图) 1.A先使用ssh-keygen生成一对公钥和私钥:ssh-keygen 2.将A的公钥复制给B一份,并且将其追加到B的授权文件中:ssh-copy-id B 3.接 ...
- Hadoop完全分布式环境搭建(二)——基于Ubuntu16.04设置免密登录
在Windows里,使用虚拟机软件Vmware WorkStation搭建三台机器,操作系统Ubuntu16.04,下面是IP和机器名称. [实验目标]:在这三台机器之间实现免密登录 1.从主节点可以 ...
随机推荐
- window10, java环境配置完后在cmd,输入java成功了,但为什么输入javac就失败了
一.Path的配置:按一般的网上教程,配置时都会是复制这段[%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;] win10的都分开显示,还是比较直观,但由于编辑器的原因,所有变 ...
- 测试自动化学习3-python3简单操作
1.列表操作 增 stu = []stus.append('lili') #在list的末尾增加一个元素 stus.insert(9,'yjk') #在指定的位置插入元素, 查 print('单个取, ...
- JAVAjdk第一次作业
第一次的作业由于对JAVA程序的不熟悉以及jdk环境变量的配置问题,第一次的作业写了很久
- Express全系列教程之(八):session的基本使用
一.关于session session是另一种记录客户状态的机制,与cookie保存在客户端浏览器不同,session保存在服务器当中:当客户端访问服务器时,服务器会生成一个session对象,对象中 ...
- shell 字符串比较 算数比较 文件条件测试
set-group-id即set-gid -->授予了程序其所在组的访问权限 set-user-id即set-uid -->授予了程序其拥有者的访问权限而不是其使用者的访问权限 set-g ...
- ADB——管理应用
ADB应用管理 主要操作有查看应用列表.安装应用.卸载应用.清楚应用数据与缓存.查看前台Activity.查看应用信息及安装路径等等 查看应用列表 查看应用列表的基本命令格式是 adb shell p ...
- 干了这杯Java之transient关键字
看源码的时候,发现transient这个关键字,不甚理解,查找资料发现:不被序列化 疑问: 静态变量是不是不被序列化? public class User implements Serializabl ...
- 解决git冲突造成的Please move or remove them before you can merge
git clean -d -fx “” 其中x —–删除忽略文件已经对git来说不识别的文件d —–删除未被添加到git的路径中的文件f —–强制运行如果你确定这货已经没用了,并且git status ...
- CocosCreator的ToggleGroup组件使用
用了CocosCreator也有一段时间,对ToggleGroup始终没有仔细的学习过,只停留在用过的水平.所以因为认识有限,所以以为ToggleGroup对自定义支持得没那么好,这两天因为项目,再学 ...
- JavaIO流——简单对文件的写入及读取(二)
前文对Io字符流的输入进行了介绍,在这就不再讲了,简单的来写该怎么读取文件内容吧 public static void readFile(String Filename) throws IOExcep ...