概述

Public Key认证的主要魅力在于认证时承诺不必提供密码就能够同远程系统建立连接。

Public Key认证的基础在于一对密钥,public key和private key,public key对数据进行加密而且只能用于加密,private key 只能对所匹配的public key加密过的数据进行解密。

我们把public key放在远程系统合适的位置,然后从本地开始进行ssh连接。

此时,远程的sshd会产生一个随机数并用我们产生的public key进行加密后发给本地,本地会用private key进行解密并把这个随机数发回给远程系统。

最后,远程系统的sshd会得出结论我们拥有匹配的private key允许我们登录。

SFTP免密码登录操作方法

1) 登陆服务端主机,在当前用户根目录执行(以RSA算法为例)

如下命令:

ssh-keygen –t rsa
屏幕显示内容均可直接以回车使用默认项,此时在$home/.ssh目录下生成I d_rsa私钥(private key)及id_rsa.pub公钥(public key)两个文件。 2) 将服务端的 $home/.ssh/id_rsa.pub 文件上传到客户端机的 $home/.ssh 目录下 通过scp命令传到 客户端 scp $home/.ssh/id_rsa.pub username@client_ip:$home/.ssh
在客户端机 $home/.ssh 目录下执行命令: cat id_rsa.pub >> authorized_keys
3)将客户端各主机信息添加到$home/.ssh/known_hosts文件中 例如: 服务端IP是10.45.7.154 客户端为:10.45.7.61 在服务端执行 sftp usename@10.45.7.61命令提示如下: qdgcp@mdw:~/.ssh> sftp qmdb@10.45.7.61
Connecting to 10.45.7.61...
The authenticity of host '10.45.7.61 (10.45.7.61)' can't be established.
RSA key fingerprint is ea:53:c8:cf:24:31:18:d8:47:68:8d:18:65:a4:e8:20.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.45.7.61' (RSA) to the list of known hosts.
这样,在服务端的$home/.ssh/目录会出现一个known_hosts文件,客户端主机信息将添加到这个文件中。 按上述方法实现服务端主机和客户端主机间的公私钥配对后,从服务端主机向客户端主机就可以实 现同一用户名 的sftp自动安全登陆操作了。 说明: 在配置ssh自动传输的时候注意, .ssh目录的属主、属组使用当前用户与用户组,
.ssh目录的权限请保持700,
authorized_keys的权限为644,
id_rsa的权限为600,
id_rsa.pub的权限为644,
同时检查用户$HOME目录权限必须为755。 确认权限 。 r 4 w 2 x 1 chmod 644 dir 通过chmod 赋权限。 实操 以下操作的是同一台主机, 一般都用于两台主机之间。 [root@entel2 ~]# cd $HOME
[root@entel2 ~]# 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:
79:e6:c1:13:7d:05:39:8a:c8:e8:84:9f:8e:c6:0e:0f root@entel2
The key's randomart image is:
+--[ RSA 2048]----+
| .o.|
| . o. |
| . o ....... |
| . o oo.... |
| + .S * |
| + + o |
| E. o . |
| ++ . |
| oo |
+-----------------+
[root@entel2 ~]# cd .ssh/
[root@entel2 .ssh]# ll
total 24
-rw------- 1 root root 1671 Nov 3 14:05 id_rsa
-rw-r--r-- 1 root root 393 Nov 3 14:05 id_rsa.pub [root@entel2 .ssh]# cat id_rsa.pub >>authorized_keys [root@entel2 .ssh]# ll
total 28
-rw-r--r-- 1 root root 393 Nov 3 14:08 authorized_keys
-rw------- 1 root root 1671 Nov 3 14:05 id_rsa
-rw-r--r-- 1 root root 393 Nov 3 14:05 id_rsa.pub [root@entel2 .ssh]# sftp root@10.45.7.198
Connecting to 10.45.7.198...
The authenticity of host '10.45.7.198 (10.45.7.198)' can't be established.
RSA key fingerprint is 5f:b5:f8:02:5a:b0:ad:6b:10:ce:6a:cc:53:55:68:c7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.45.7.198' (RSA) to the list of known hosts.
sftp> exit 查看目录 出现了 known_hosts
[root@entel2 .ssh]# ll
total 32
-rw-r--r-- 1 root root 393 Nov 3 14:08 authorized_keys
-rw------- 1 root root 1671 Nov 3 14:05 id_rsa
-rw-r--r-- 1 root root 393 Nov 3 14:05 id_rsa.pub
-rw-r--r-- 1 root root 393 Nov 3 14:09 known_hosts [root@entel2 .ssh]# cat known_hosts
10.45.7.198 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1WCBN8XDrGX2Ersub6U8CDtY2a0Ug5YT9fvqTcJm+DCQVj/DZVyvc5ODBC03iDp54ugSOToFluo1RabJjrTEZGMWjYKCZzEXRYO3sq4waGIP1D27bYLs9GW23VZUP0qwpmPKuJs8Asx7S1m9knoQO+wIeyQQt0gkw3TKM4QJSPAsfqSl0XuSTOczS9kbNTGOCpYoB7kThsE8Q87OqRLfjR2ePN3bDTL6RKX8iDm2PelQ2g+oAQCCmWlUF11TYwBahN0bKY7rNPsEQWlYpk0QGdNVTwMGy1j2DrlzoLSyuLfMu5+NgPVgx9MKmLfQlPVdFQyb/n5NShGxG+VAPA+6CQ== [root@entel2 .ssh]# ssh root@10.45.7.198
Last login: Thu Nov 3 14:06:17 2016 from 10.45.22.168 [root@entel2 ~]# sftp root@10.45.7.198
Connecting to 10.45.7.198...
sftp>

  

SFTP免密码登录原理的更多相关文章

  1. linux ssh免密码登录的原理

    免密码登录原理 图解,server A免登录到server B: 1.在A上生成公钥私钥. 2.将公钥拷贝给server B,要重命名成authorized_keys(从英文名就知道含义了) 3.Se ...

  2. 【转】ssh免密码登录的原理

    工作第一天,就需要登录各种服务器,免密码登录无疑能大大的提高工作效率.以前只知道配置,今天了解了下原理. 免密码登录原理 图解,server A免登录到server B: 1.在A上生成公钥私钥. 2 ...

  3. SSH免密码登录配置方法详解

    1.测试主机配置信息: 192.168.100.236 db06.chavin.king db06 192.168.100.237 db07.chavin.king db07 2.创建测试用户: gr ...

  4. Linux - Shell - 免密码登录

    概述 简述 linux ssh 无密码登录 无能狂怒 最近真是不知道写啥了 环境 os centos7 1. 场景 场景 主机A 需要经常访问 主机B 每次访问, 都要输入一次 密码 问题 每次都输密 ...

  5. 如何配置ssh免密码登录

    [TOC] 如果你在管理一堆unix机器,每次登录都要输入密码是挺烦的事情,一方面为了安全我们一般不会将所有机器的密码都设置成一样,另一方面就算一样每次都输入一遍也很麻烦. 这种情况下我们一般是用ss ...

  6. ssh免密码登录机器(使用公钥和秘钥进行加密来实现)

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 登录的原理: 有机器A(192.168.1.155),B(192.168.1. ...

  7. 集群ssh服务和免密码登录的配置

    安装Hadoop之前,由于集群中大量主机进行分布式计算需要相互进行数据通信,服务器之间的连接需要通过ssh来进行,所以要安装ssh服务,默认情况下通过ssh登录服务器需要输入用户名和密码进行连接,如果 ...

  8. Linux 配置ssh 免密码登录

    在平常应用中,我们经常会登录到其他主机,比如说服务器,每次都需要用户名和密码. 我们可以通过ssh免密码登录服务器而不需要输入密码. 现在有一台ubuntu的阿里云服务器,称之为 server.  公 ...

  9. linux ssh公钥免密码登录

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 一.SSH公钥登录原理 在平时工作中我们经常要远程登录服务器,这就要用到SSH ...

随机推荐

  1. [agc016B][Colorful Hats]

    题目链接 思路 首先,如果没人说谎那么序列中肯定只有一大一小两种数,假设大的数为x,小的数为y.因为对于每个人只有两种情况,要么自己与除自己外的某个人拥有相同的颜色,此时总颜色数就是这个人所能看到的颜 ...

  2. canvas绘制爱心的几种方法

    第一种方法:桃心形公式 代码实现的一种方法 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  3. MySQL 之 库操作,表操作

    系统数据库 information_schema :虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等 mysql:核心数据库,里面包含用户.权限.关键 ...

  4. 中性SNP的突变年龄评估(estimate the average age of a neutral two-allele polymorphism)

    假设中性突变的频率分别为P和1-P,则其突变年龄为:-4Ne[p*( logep)+(1-p)* loge (1-p)] The average age of a neutral two-allele ...

  5. C++基础知识-Day8

    2.类的作用域运算符 shadow 在我们之前讲的内容中,我们会发现一种情况,就是在我们在不同类中的打印函数我们都是尽量让其名字不同,那么为什么会有这种情况呢?首先我们来看一个函数 void func ...

  6. Salt初识和安装

    Salt Salt是一个配置管理系统,能够根据定义的状态,配置远程节点,比如保证远程节点上指定的安装包安装,运行指定的服务.Salt也是一个分布式远程执行系统,用于在远程节点上执行命令和请求数据,不论 ...

  7. okhttp post form表单

    OkHttpClient okHttpClient = new OkHttpClient.Builder().build(); FormBody formBody = new FormBody.Bui ...

  8. -bash: /tyrone/jdk/jdk1.8.0_91/bin/java: cannot execute binary file

    问题描述:今天在linux环境下安装了一下JDK,安装成功后,打算输入java -version去测试一下,结果却出错了. 错误信息:-bash: /tyrone/jdk/jdk1.8.0_91/bi ...

  9. Java基础之随机生成数字和字母

    字母与数字的ASCII码 目 前计算机中用得最广泛的 字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information I ...

  10. vue的一些小坑

    1.$refs使用时机 尝试在watch的时候使用$refs,发现里面都是空的,然后google了一下,$refs需要在整个组件挂载完成后才能使用 解决方法:使用setTimeout setTImeo ...