ssh 密钥详解

原理:

密匙认证需要依靠密匙,首先创建一对密匙(包括公匙和密匙,并且用公匙加密的数据只能用密匙解密),并把公匙放到需要远程服务器上。这样当登录远程 服务器时,客户端软件就会向服务器发出请求,请求用你的密匙进行认证。服务器收到请求之后,先在你在该服务器的宿主目录下寻找你的公匙,然后检查该公匙是 否是合法,如果合法就用公匙加密一随机数(即所谓的challenge)并发送给客户端软件。客户端软件收到 “challenge”之后就用私匙解密再把它发送给服务器。因为用公匙加密的数据只能用密匙解密,服务器经过比较就可以知道该客户连接的合法性。

客户机:172.16.142.4
远端主机:172.16.142.5

在客户机以root用户执行下述命令:
[[email protected] .ssh]# /usr/bin/ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
30:f6:d7:2a:ac:56:eb:3f:fa:40:25:8d:90:96:68:cb [email protected]
------------------------------------------------
说明:
该命令将在用户的主目录/.ssh目录下面产生一对密钥
一般采用的ssh的rsa密钥:
id_rsa     私钥
id_rsa.pub 公钥
下述命令产生不同类型的密钥
ssh-keygen -t dsa
ssh-keygen -t rsa
ssh-keygen -t rsa1
-------------------------------------------------------
[[email protected] .ssh]# scp /root/.ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys

The authenticity of host ‘172.16.142.5 (172.16.142.5)‘ can‘t be established.
RSA key fingerprint is 4b:a5:74:fb:2e:08:60:af:fa:76:d4:b0:26:4c:13:75.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘172.16.142.5‘ (RSA) to the list of known hosts.
[email protected]‘s password:

id_rsa.pub                                                                                       
100% 236     0.2KB/s   00:00
-------------------------------------------------------------
说明:
将公钥拷贝到远端主机,并写入授权列表文件
你也可以把公钥文件拷贝过去后,在远端主机下直接执行
touch /root/.ssh/authorized_keys
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
-------------------------------------------------------------

操作完毕,登陆检查。  
[[email protected] .ssh]# ssh 172.16.142.5
[email protected]‘s password:

请注意此时如果仍提示输入密码,请检查如下文件夹和文件的操作权限,这是非常重要的, 否则ssh公钥认证体制不能正常工作:

172.16.142.4(客户端)
/home/root文件夹的权限是600
/home/root/.ssh文件夹的权限是600 (好像这个权限关系不是很大)
/home/root/.ssh/id_dsa私钥的权限600

172.16.142.5(远端主机)
/home/root文件夹的权限是644
/home/root/.ssh文件夹的权限是644 (好像这个权限关系不是很大)
/root/.ssh/authorized_keys公钥的权限644

--------------------------------------------------------------
[[email protected] ~]# ssh 172.16.142.5
Last login: Sat Dec 15 21:10:17 2007 from 172.16.142.4
[[email protected] ~]#
无密码SSH登陆成功!

时间: 2024-10-17 11:53:48

ssh 密钥详解的相关文章

ssh配置详解及公私钥批量分发

第一:ssh配置文件详解 第二:ssh公私密钥的生成 第三:ssh公钥分发之一:ssh自带工具ssh-copy-id工具分发 第四:ssh公钥分发之二:编写sshpass脚本批量分发 第五:ssh公钥分发之三:使用ansible自带模块批量分发 原文地址:https://www.cnblogs.com/fengjunhua/p/8962981.html

FreeBSD系统SSH配置详解并能使用su

修改freebsd可以用sshd权限用户登录ssh 但不能用root用户登录的方法 在/etc/ssh/sshd_config最后中加入 PermitRootLogin yes #允许root登录 PermitEmptyPasswords no #不允许空密码登录 PasswordAuthentication yes # 设置是否使用口令验证. 就可以了 FreeBSD SSH配置详解 首先vi编辑/etc/inetd.conf,去掉ssh前的#,保存退出 (开启****ssh服务) 编辑/et

eclipse Indigo搭建SSH框架详解

SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题.下面我介绍一下SSH框架搭建的全过程. 第一步:准备工作.   下载好eclipse,Struts2,Spring,Hibernate.   1.eclipse:eclipse下载的时候建议下载JavaEE版的eclipse.                 当然你也可以下载eclipse-SDK.(下载eclipse-SDK需要下载Web,Tomcat等plugins)   2.Struts2:http://str

centos SSH配置详解

基本概念  linux自带的ssh为OpenSSH ssh协议提供两种用户认证方式  1. 基于口令的安全认证:使用用户名.密码的方式对登录用户进行认证 2. 基于密钥的安全认证:使用公钥和私钥对的方式对登录用户进行认证 OpenSSH的rpm包由四部分组成(默认已安装)  openssh-4.3p2-26.el5.i386.rpm(一定要先安装这个rpm包) openssh-server-4.3p2-26.el5.i386.rpm openssh-clients-4.3p2-26.el5.i3

ssh 协议详解

一. 前言 使用SSH可以在本地主机和远程服务器之间进行加密地传输数据,实现数据的安全.而OpenSSH是SSH协议的免费开源实现,它采用安全.加密的网络连接工具代替了telnet.ftp等古老明文传输工具. SSH(Secure Shell)是建立在应用层和传输层基础上的安全协议.SSH是目前较可靠,专为远程登陆会话和其他网络服务提供安全性的协议.利用SSH协议可以有效防止远程管理过程中的信息泄露问题. SSH可以将所有的传输数据加密,这样"中间人"这种攻击方式就不可能实现了,而且也

SSH协议详解

转发的http://blog.csdn.net/macrossdzh/article/details/5691924 很透彻啊,学习了 一.什么是SSH SSH是英文Secure Shell的简写形式.通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗.使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度.SSH有很多功能,它既可以代替Telnet,又可以为FTP.Pop.甚至为PPP

SSH配置文件详解

整理下SSH Server的配置文件中各项对其进行解释. 一. sshd配置文件是:/etc/ssh/sshd_config,去掉注释后全文基本如下: Port 22  #设置ssh监听的端口号,默认22端口 ListenAddress :: ListenAddress 0.0.0.0  #指定监听的地址,默认监听所有: Protocol 2,1   #指定支持的SSH协议的版本号.'1'和'2'表示仅仅支持SSH-1和SSH-2协议. #"2,1"表示同时支持SSH-1和SSH-2协

ssh服务详解

什么是openssh openssl是使用ssh协议远程登录系统的连接工具.它能加密流量.防窃听和其他攻击.此外还能够提供隧道功能.多种认证方法和复杂的配置选项: openssh是一组工具的集合,其套件包括三部分: 远程操作类    ssh.scp.sftp 密钥管理类    ssh-add.ssh-keysign.ssh-keyscan和ssh-keygen 服务提供者类    sshd.sftp-server.ssh-agent openssh官方网站: https://www.openss

Ubuntu中SSH命令详解

SSH(SecureShell)是目前比较可靠的为远程登录会话和其他网络服务提供安全性的协议.利用SSH协议可以有效防止远程管理过程中的信息泄露问题.通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗.下面介绍的是Ubuntu中SSH的概念和使用的方法,具体内容如下所述. 什么是SSH SSH的英文全称是SecureSHell,SSH协议族由IETF(InternetEngineeringTaskForce)的NetworkWorkingGroup制定,SSH协议的内容SS