讲解 ssh-keygen -t rsa -b 4096 命令表达的意思
讲解 ssh-keygen -t rsa -b 4096 命令表达的意思
实现免密登录
这条命令目的是为了本地机器ssh登录远程服务器无需输入密码
1.ssh-keygen
SSH 为 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。从客户端来看,SSH提供两种级别的安全验证:第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。第二种级别(基于密匙的安全验证)ssh-keygen:需要依靠密匙,你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒 。ssh-keygen有很多的参数,比如这里的-t -b -C都是他的一些参数
2.-t rsa
-t即指定密钥的类型,密钥的类型有两种,一种是RSA,一种是DSA:RSA:RSA加密算法是一种非对称加密算法,是由三个麻省理工的牛人弄出来的,RSA是他们三个人姓的开头首字母组合。DSA:Digital Signature Algorithm (DSA)是Schnorr和ElGamal签名算法的变种。为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。ssh-keygen默认使用rsa密钥,所以不加-t rsa也行,如果你想生成dsa密钥,就需要加参数-t dsa。
3.-b 4096
-b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。命令中的4096指的是RSA密钥长度为4096位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。
这里额外补充一个知识
命令后面还可以增加-C "注释内容"-C表示要提供一个新注释,用于识别这个密钥,可以是任何内容,一个用来识别的key
小结:当你创建ssh的时候:-t 表示密钥的类型 ,-b表示密钥的长度,-C 用于识别这个密钥的注释 ,这个注释你可以输入任何内容
ssh免密登陆失败原因总结(Linux)
- SSH公钥认证(免密码)配置
登录到本机服务器A,切换到响应的操作系统用户,执行命令,生成秘钥文件【按照提示直接回车】
ssh-keygen -t rsa
将公钥传送到对端服务器B上面【user@host为对端服务器帐号及IP】
ssh-copy-id -i ~/.ssh/id_rsa.pub user@host
然后在本机服务器A上ssh命令验证是否免密码登录生效【user@host为对端服务器帐号及IP】
ssh user@host
- SSH免密码登陆的基本原理
SSH(Secure Shell)是一种通信加密协议,加密算法包括:RSA、DSA等
- SSH免密码失败原因定位分析
a) 服务器B上.ssh目录的权限必须是700b) 服务器B上.authorized_keys文件权限必须是600或者644c) 服务器B上用户家目录文件权限必须是700,比如用户名是aischang,则/home/aischang这个目录权限必须是700如果不是700,在服务器A上查看/var/log/secure文件会报错
#原因
sshd为了安全,对属主的目录和文件权限有所要求。如果权限
不对,则ssh的免密码登陆不生效。
d) 服务器B上SELinux关闭为disabled,可以使用命令修改setenforce 0 ,查看状态的命令为getenforce或者 查看/etc/selinux/config 文件中是否是disablede) 有可能是StrictModes问题编辑 vi /etc/ssh/sshd_config找到#StrictModes yes改成StrictModes nof) 有可能是PubkeyAuthentication问题编辑 vi /etc/ssh/sshd_config找到PubkeyAuthentication改成yes
一、概述
1、就是为了让两个linux机器之间使用ssh不需要用户名和密码。采用了数字签名RSA或者DSA来完成这个操作
2、模型分析
假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;
要达到的目的:
A机器ssh登录B机器无需输入密码;
加密方式选 rsa|dsa均可以,默认dsa
二、具体操作流程
单向登陆的操作过程(能满足上边的目的):
1、登录A机器
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行#ssh 192.168.20.60 )
双向登陆的操作过程:
1、ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.具体方法如下:
2、两个节点都执行操作:
#ssh-keygen -t rsa
然后全部回车,采用默认值.
3、这样生成了一对密钥,存放在用户目录的~/.ssh下。
将公钥考到对方机器的用户目录下,并将其复制到~/.ssh/authorized_keys中(操作命令: #cat id_dsa.pub >> ~/.ssh/authorized_keys )。
4、设置文件和目录权限:
设置authorized_keys权限
$ chmod 600 authorized_keys
设置.ssh目录权限
$ chmod 700 -R .ssh
5、要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞
讲解 ssh-keygen -t rsa -b 4096 命令表达的意思相关推荐
- linux ssh keygen参数,SSH的ssh-keygen命令基本用法详解
ssh 公钥认证是ssh认证的方式之一.通过公钥认证可实现ssh免密码登陆,git的ssh方式也是通过公钥进行认证的. 在用户目录的home目录下,有一个.ssh的目录,和当前用户ssh配置认证相关的 ...
- linux中服务器互信的原理,linux服务器配置ssh互信(RSA)
RSA认证协议原理: 对信息的加密和解密采用不同的key,这对key分别称作private key和public key,其中,public key存放在欲登录的服务器上,而private key为特 ...
- 华为交换机 ssh和Telnet远程登录配置命令
华为交换机 ssh和Telnet远程登录配置命令 联系方式 QQ481715271*** ** 简单拓扑 ** LSW4 vlan 20配置地址的原因是SSH Telnet 都可以登录 LSW3 配置 ...
- scp 命令 路径_基于SSH的文件传输:scp命令
日常开发中,经常需要在服务器和本地之间进行文件传输.这里来介绍一种基于SSH的文件传输方法--scp命令 命令格式 scp(secure copy,remote file copy program), ...
- windows连接远程服务器报错‘SSH‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件 解决方案
windows连接远程服务器报错'SSH' 不是内部或外部命令,也不是可运行的程序 或批处理文件 解决方案 参考文章: (1)windows连接远程服务器报错'SSH' 不是内部或外部命令,也不是可运 ...
- Linux系列讲解 —— SSH登录
讲解一下ssh远程登陆的基础知识. 目录 0. 基本概念 1. 安装ssh程序 1.1 windows平台(Win10) 1.2 Linux平台(Ubuntu18.04) 2. 密码方式远程登录 3. ...
- ssh免密码远程执行sudo命令
目的是执行下面的命令不需要输入任何密码! copy >ssh username@host "sudo command" 1. 在本地机器上生成秘钥对儿 ssh-keygen ...
- 【Linux】Rsync基于SSH认证的使用(rsync 命令属于1 v 4 的命令、rsync常用参数基本用法)
一.Rsync基于SSH认证的使用 rsync 默认使用 ssh 协议进行远程登录和数据传输.远程主机需要开启 sshd 服务,rsync 在传输数据之前会先与远程主机进行一次 ssh 登录认证,然后 ...
- ssh登录提示RSA Host key认证失败的解决方法
[问题描述] 今天用ssh命令登录一台此前连接过的服务器,失败,出现下面的错误提示 [问题分析] 从提示看,很明显,是RSA key不匹配. 根据提示查看本机/home/user/.ssh/目录下,查 ...
最新文章
- Zepto.js库touch模块代码解析
- 实现主成分分析和白化
- Groovy里的运行时元数据编程(metata programming)
- 人的手臂的自由度的数目以及六自由度机械臂的限制
- php openssl des ecb,php7.2 des-ede3-ecb加密报错:openssl_encrypt():Unknown cipher algorithm 落叶随风博客...
- Jupyter Lab在线运行矩池云教程
- [1-7] 把时间当做朋友(李笑来)Chapter 7 【从此时此刻开始改变】 摘录
- 计算机软考网络工程师历年真题,2019上半年软考网络工程师考试下午真题
- pc微信 hook 微信hook 最新版源码3.5 demo下载地址
- 某公司基于FineBI数据决策平台的试运行分析报告
- mysql update 子表,mysql update 子查询锁表问题
- 卷积神经网络原理详解
- 你应该知道的四种并发工具类
- ssm基于微信平台的牙科就诊信息管理系统的设计与实现 毕业设计源码211157
- 读取文本文件内容并写到excel
- 小学奥数公式大全 学习奥数必备“工具”
- 概率 (菜鸡 dalao轻喷
- 解决VUE在浏览器全屏下监听不到Esc键盘事件
- krpano 如何开启调试
- 剑指 Offer 61-68