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 不需要输入密码,但是每 ...
随机推荐
- pycharm 秘籍:快捷键技巧等
Pycharm基本使用 安装 下载地址:https://www.jetbrains.com/pycharm/download 选择Professional 专业版 Comunnity社区版是免费的,但 ...
- SpringAOP入门
Spring的AOP aop概述 Aspect Oriented Programing 面向切面(方面)编程, aop:扩展功能不修改源代码实现 aop采取横向抽取机制,取代了传统纵向继承体系重复性代 ...
- STM32F103ZET6时钟
1.STM32F103ZET6时钟说明 STM32F103ZET6的时钟树图如下所示: STM32F103ZET6有很多个时钟源,分别有: HSE:高速外部时钟信号. HSI:高速内部部时钟信号. L ...
- 1064 Complete Binary Search Tree (30分)(已知中序输出层序遍历)
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following propertie ...
- Java学习笔记--Comparable & Comparator
一. Comparable<T>: Comparable是类内部的比较器,用于创建类的时候实现此接口,同时实现比较方法:对于不能修改源码的类则无法应用此方式进行比较排序等. 源码为: ...
- JSP 简介(转载)
什么是Java Server Pages? JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%> ...
- php静态变量的运用
<?php $count = 5; function get_count() { static $count = 0; return $count++; } echo $count; echo ...
- Hadoop(二)搭建Hadoop
0.部署计划 本文使用的版本是 red hat 6.8 -本来想用Centos7搭建的,但是工作需要还是换成这个了,不用红帽子用Centos 6系列的应该也可以 JDK 1.8 Hadoop 2.7. ...
- MTK Android ROM与RAM的区别
ROM与RAM 简单的说,一个完整的计算机系统是由软件和硬件组成的.其中,硬件部分由中央处理单元CPU(包括运算器和控制器).存储器和输入/输出设备构成.目前个人电脑上使用的主板一般只能支持到1GB的 ...
- 2016蓝桥杯报纸页数(C++C组)
题目: 报纸页数X星球日报和我们地球的城市早报是一样的,都是一些单独的纸张叠在一起而已.每张纸印有4版.比如,某张报纸包含的4页是:5,6,11,12,可以确定它应该是最上边的第2张报纸.我们在太空中 ...