美文网首页嵌牛IT观察
SSH密匙原理及使用方法

SSH密匙原理及使用方法

作者: 小乐杂货铺 | 来源:发表于2017-10-28 22:30 被阅读0次

姓名:乐仁华                           学号:16140220023

转载自:http://m.blog.chinaunix.net/uid-20628302-id-3076815

【嵌牛导读】:本文主要讲解ssh密匙原理及使用方法

【嵌牛鼻子】:ssh密匙

【嵌牛提问】:ssh密匙是什么?ssh密匙怎么用?

【嵌牛正文】:

         前段时间用paramiko模块来创建ssh通信时发现一直搞不好,因为自己也不是很了解ssh怎么搞,所以在网上浏览了很多教程,在这也和大家总结分享下。

       ssh是什么呢,不了解的同学可能会有疑惑。ssh,全称Secure Shell(我自己叫它做安全外壳),是一种网络安全协议,怎么理解呢,可以这样说,就像是给你的通信加了一个密封的管子,信息的交换都在管子里进行,和外界隔开了,这样不就能起一种保护作用嘛。不过更详细的可以去看看百度上的解释。

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

        那这个我们可以怎么用呢?其实现在很多pc都是带有ssh客户端的(不过我看很多教程上讲windows没有这个,我试过也没用,不知道为啥没有)。咋们以linux系统为例看看怎么用吧,这里参考了这个教程

客户机:172.16.142.4

远端主机:172.16.142.5

在客户机以root用户执行下述命令:

[root@localhost .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 root@localhost.localdomain

------------------------------------------------

说明:

该命令将在用户的主目录/.ssh目录下面产生一对密钥

一般采用的ssh的rsa密钥:

id_rsa     私钥

id_rsa.pub 公钥

下述命令产生不同类型的密钥

ssh-keygen -t dsa

ssh-keygen -t rsa

ssh-keygen -t rsa1

-------------------------------------------------------

[root@localhost .ssh]# scp /root/.ssh/id_rsa.pub root@172.16.142.5:/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.

root@172.16.142.5'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

-------------------------------------------------------------

操作完毕,登陆检查。

[root@localhost .ssh]# ssh 172.16.142.5

root@172.16.142.5'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

(关于权限的这个我也不是很懂,而且我在用的过程中也没考虑这个文件权限也可以用)

--------------------------------------------------------------

[root@localhost ~]# ssh 172.16.142.5

Last login: Sat Dec 15 21:10:17 2007 from 172.16.142.4

[root@localhost ~]#

无密码SSH登陆成功!

      

相关文章

  • SSH密匙原理及使用方法

    姓名:乐仁华 学号:16140220023 转载自:http://m.blog.chinaunix.net/uid...

  • Linux 免密登陆

    步骤一: 生成本地密匙 如果本地没有密匙, 首先需要创建一个自己的密匙,使用ssh-keygen -t rsa,一...

  • openssl 证书 及ssh密匙

    概念 公钥和私钥都可以用来加密数据,相反用另一个解开。公钥加密数据,然后私钥解密的情况被称为 加密解密。私钥加密数...

  • Linux网络管理-4

    Linux远程登录工具 SSH协议原理 对称加密算法采用单匙密码系统的加密方法,同一个密匙可以同时用作信息的加密和...

  • SSH 远程连接

    ssh keys就是能让你免密登陆服务器的密匙 ssh-copy-id 能将 ssh keys装在服务器上ssh-...

  • Gitlab—ssh配置

    1、先查看是否存在ssh密匙cat ~/.ssh/id_rsa.pub 2、生成SSH(1)、ssh-keygen...

  • iPad terminus 登录腾讯云

    SSH 公钥与私钥 公钥与私钥的简单介绍需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服...

  • Linux学习笔记--SSH免密码登录

    SSH免密码登录原理: 这种方式你需要在客户端服务器上为自己创建一对密匙,并把公匙放在需要登录的服务器上。当你要连...

  • ssh 免密登录

    ssh免密登录 ssh(secure shell):使用加密通道来传输数据。其采用非对称加密技术,认证密匙包含两个...

  • Mac下应用及终端无法自动调用SSH

    macOS下的ssh,需运行ssh-add -K ~/.ssh/id_rsa,将密匙加入到系统的keychains...

网友评论

    本文标题:SSH密匙原理及使用方法

    本文链接:https://www.haomeiwen.com/subject/scqepxtx.html