Linux 设置秘钥登录(SSH免密连接)
Secure Shell 协议,简称 SSH,是一种加密网络协议,用于客户端和主机之间的安全连接,并支持各种身份验证机制,目前最实用的身份验证机制就是基于密码的身份验证和基于公钥的身份验证两种。Linux系统如何设置基于 SSH 密钥的身份验证,以及如何免密连接到主机的教程。
第一步:检查现有的 SSH 密钥对
首先检查主要是为了不覆盖现有密钥。运行以下Is 命令以查看,存在可以使用这些密钥并跳过第二步,或备份旧密钥并生成新密钥。如果看到 No such file or directory 或 no matches found 意味着没有 SSH 密钥,则可以继续执行下一步并生成新密钥。
ls -al ~/.ssh/id_*.pub
第二步:生成新的 SSH 密钥对
以下命令将生成一个新的 4096 位 SSH 密钥对,并将电子邮件地址作为注释:
ssh-keygen -b 4096 -C Email@qq.com
ssh-keygen常见参数:
-t:指定生成密钥的类型,默认使用SSH2d的rsa
-f:指定生成密钥的文件名,默认id_rsa(私钥id_rsa,公钥id_rsa.pub)
-b:指定密钥长度(bits),RSA最小要求768位,默认是2048位;DSA密钥必须是1024位(FIPS 1862标准规定)
-C:添加注释;
-P:提供旧密码,空表示不需要密码(-P ‘’)
-N:提供新密码,空表示不需要密码(-N ‘’)
-R hostname:从known_hosta(第一次连接时就会在家目录.ssh目录下生产该密钥文件)文件中删除所有属于hostname的密钥
-e:读取openssh的私钥或者公钥文件;
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l:显示公钥文件的指纹数据;
-q:静默模式;
按 Enter 接受则默认文件位置和文件名:
Enter file in which to save the key(/home/yourusername/.ssh/id_rsa):
接下来,ssh-keygen 工具将要求输入安全密码(如果不想使用密码短语,请按 Enter:),您如果选择使用密码短语,将获得额外的安全保护。多数情况下,开发人员和系统管理员使用 SSH 而不使用密码,因为它们对完全自动化的流程很有用。

第三步:检查下.ssh目录下authorized_keys文件是否存在,存在直接跳过第三步
没有的话,创建一个,然后将id_rsa.pub的内容追加到authorized_keys文件尾。
cd .ssh
touch authorized_keys ->如果ssh中存在此文件则省略此步骤
cat id_rsa.pub >> authorized_keys -> 将id_rsa.pub的内容追加到authorized_keys
第四步:检测,是否需要修改ssh的配置(可忽略)
[root@centos-004 .ssh]#vim /etc/ssh/sshd_config RSAAuthentication yes
PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
这里有一点很重要,在你配置密钥登录成功之前,千万不要太自信将PasswordAuthentication 设置no,否则你密钥登录不了,然后又禁止密码登录,就悲剧了。在密钥登录设置成功之后,可以将PasswordAuthentication 设置为no,禁用密码登录了,比较安全。
第五步:复制公钥
生成SSH 密钥对后,为实现没有密码登录到主机,需要将公钥复制到要管理的主机。将公钥复制到主机的最简单方法是使用名为的命令 ssh-copy-id 。在本地主机终端类型:
ssh-copy-id remote_username@server_ip_address
系统将提示输入 remote_username 的密码:
remote_username@server_ip_address's password:
用户通过身份验证后,公钥将附加到远程用户 authorized_keys 文件,并且将关闭连接。如果由于某种原因, ssh-copy-id 本地主机上没有该实用程序,则可以使用以下命令复制公钥:
cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
第六步:使用 SSH 密钥登录
完成上述步骤后,就能够登录到远程主机而不会被提示输入密码,测试口令:
ssh remote_username@server_ip_address
https://blog.csdn.net/qq_27870421/article/details/94594492
http://baijiahao.baidu.com/s?id=1648175338751747914&wfr=spider&for=pc
Linux 设置秘钥登录(SSH免密连接)的更多相关文章
- ssh免密连接远程服务器
ssh免密连接远程服务器 借助ssky-keygen和ssh-copy-id工具,通过4个简单的步骤实现无需输入密码登录远程Linux主机 1 生成密钥 通过内置的工具生成RSA算法加密的密钥 ssh ...
- 【Linux】两台服务器ssh免密登录
背景: 有些场景可能用到两台服务器ssh免密登录.比如服务器自动化部署 开始准备: 服务器A linux ip: 192.168.1.1 服务器B linux ip: 192.168.1. ...
- SSH设置秘钥登录
设置 SSH 通过密钥登录 我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器.但是,一般的密码方式登录,容易有密码被暴力破解的问题.所以,一般我们会将 SSH 的端口设置为默 ...
- linux(十)配置ssh免密登录实现
知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识.备注:ssh是用于远端登入.执行ssh指令开启终端机阶段作业 ...
- linux使用秘钥登录(禁用root密码登录)
目的:为了巩固线上外网服务器的安全,避免黑客攻击植入木马,初步决定禁用root密码登录(安全强度低),统一使用秘钥登录(4096位长度,安全性较高) 具体操作如下: 一.生成ssh秘钥: ssh-ke ...
- Mac 使用 SSH 免密连接服务器
1.生成 SSH 秘钥 ssh-keygen -t rsa 生成的密钥对 id_rsa 和 id_rsa.pub,默认存储在 ~/.ssh 目录,其中没有后缀的是私有,有后缀 .pub 的为公钥.生 ...
- linux服务器间配置ssh免密连接
先说一下,我用的centos7,root用户.ssh的原理就不说了,网上介绍的文章很多,直接开始说操作步骤吧: 1.首先确认有没有安装ssh,输入 rpm -qa |grep ssh查看 这样就表示安 ...
- CentOS7设置集群环境SSH免密访问
1.准备工作 1)通过克隆或者其他方式获得可互相通信的多台节点(本文为3台虚拟机:hadoop101.hadoop102.hadoop103) 2)配置节点的静态IP.hostname.hosts,参 ...
- 本地ssh快速登录 ssh免密登录
每次登录都要ssh -p wang@xx.xx.xx.xx 虽然做了公钥验证 https://www.cnblogs.com/php-linux/p/10795913.html 不需要输入密码,但是每 ...
随机推荐
- Java数组模拟队列
队列 先进先出 什么意思呢? 我的理解:队列就是一个数组(不包含链表),然后我们给它施加一个存数据和取数据的规则 当只允许从一端存数据,从另一端取数据的数组,就是队列,我们要做的就是给这个数组施加我们 ...
- 剑指offer—单链表反转的三种实现方法
单链表的反转可以用递归.非递归和栈的方法实现 链表节点定义: struct ListNode{ int val; Node* next; ListNode(int x):val(x),next(nul ...
- 配置HTTPS网站服务器
配置HTTPS网站服务器 案例1:配置安全Web服务 1.1问题 本例要求为站点http://server0.example.c ...
- 如何将icon图标库引入自己的项目中
---恢复内容开始--- 今天是18年的国庆,趁着国庆的这股开心劲儿,开开心心的写点东西: 第一篇:关于如何将icon图标库引入自己的项目(此方法Taro,微信小程序,支付宝小程序等均适用,不会存在不 ...
- PHP 学习笔记摘要
文章更新于2020-03-17 文章目录 一.基础知识 二.知识点细节说明 (1)boolean 布尔型 (2)string 字符串型 (3)integer 整型 (4)float 浮点型 (5)ar ...
- 一天学一个Linux命令:第二天 cd pwd
文章更新于:2020-03-08 注:本文参照 man pwd 手册,并给出使用样例. 文章目录 一.命令之 `cd` 和 `pwd` 1.命令介绍 2.语法格式 3.使用样例 4.pwd 参数 5. ...
- python CGI 编程实践
文章更新于:2020-03-05 注1:安装 python 参见: python 的安装使用和基本语法 注2:配置 web 环境参见: Windows&linux使用集成环境搭建 web 服务 ...
- HTTP 405 的错误提示:消息 JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS 的解决方法
如果项目是运行在 Tomcat 8 及以上,会发现发出的 PUT 请求和 DELETE 请求可以被控制其接收到,但是返回页面时(forward)会报HTTP 405 的错误提示:"消息 JS ...
- Linux 提高操作效率之 tab 命令补全
最近在使用阿里云 ECS 时,发现 Centos 无法进行 tab 补全,特别影响操作效率,本文简单记录下 Linux 下的 tab 命令补全功能,希望对 Linux 初学者有所帮助. 安装 Linu ...
- x86汇编之栈与子程序调用
什么是栈 栈与普通数据结构所说的栈的概念是相似的,遵循后进先出原则.不同的是汇编中所说的栈是一个在内存中连续的保存数据的区域,也即是实际存在的内存区域,进栈和出栈遵循后进先出原则. 在x86架构中,栈 ...