我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ssh-keygen(linux 命令) 创建 private key(私钥) , public key (公钥),实现ssh,scp,sftp命令无密码连接

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ssh-keygen(linux 命令) 创建 private key(私钥) , public key (公钥),实现ssh,scp,sftp命令无密码连接

ssh-keygen(linux 命令) 创建 private key(私钥) , public key (公钥),实现ssh,scp,sftp命令无密码连接_sun0322的博客-CSDN博客

目录

■相关知识   之   非对称加密

■想要达到的效果

意义1:

意义2:

■连接时  使用到的命令 (在ServerA上执行的命令)

各种命令

・sftp

・ssh

・scp

RSA 与 DSA

■具体操作

1.首先  生成公钥  和 私钥 

原理说明

2.根据以上原理,配置公钥和私钥

在ServerB中,想登录的用户(user001)的 ./ssh 配置公钥authorized_keys

3.连接 

 在ServerA中,使用私钥连接 ServerB

■补充说明1 :konw_hosts 文件

作用:

■公钥 以及  私钥 的内容

■生成公钥 私钥  时,使用到的命令 ssh-keygen 的简单介绍

■参考  (工作中使用到的单词(软件开发))

  └40. RAS // ssh-keygen(linux 命令)  // private key(私钥) , public key (公钥)

■其它通信安全的相关知识

1.什么是:公钥,私钥,证书 ,以及 HTTPS,

2.使用JDK创建证书   (并在 自己的 Web工程中 使用证书)

3.网络通信相关知识(整理在SFDC相关的资料中)

4.证明书安装(no trusted certificate found 时,需要用安装证明书的方式,来通过认证)

5.客户端证书     (和【 https 网站 的 CA证书】, 分别是 两个 证书。)

6.在浏览器中查看  客户端证书・信任的证书

7.ssh,scp,sftp等命令无密码使用(通过公钥,私钥实现)

■网络通信相关知识

1.tracert  路由查询命令

2.网关和代理服务器的异同

3.密钥库文件格式(.jks(Java Keystore)  .ks .jce  .p12 .pfx.....),  证书格式(.cer .crt/.rsa  .p7c/.p7m/.p7s  .p12.....)

4.cacerts 是一个信任库。信任库用于验证对等方的身份。  // 是certified authority certificates 的缩写  


====

■相关知识   之   非对称加密

SSH密钥登录使用非对称加密,
用户通过自己的密钥登录,
(注意:私钥必须自己保存,不能泄漏,公钥则是公开,可以对外发送保存。)
公钥和私钥是一对一的关系:只有对应的私钥才能解密对应公钥加密的数据。

■想要达到的效果

ServerA 无密码 访问 ServerB 

意义1:

(可无密码使用 ssh,scp等命令,

    不用输入密码,当有连接服务器,文件传输等需求时,可以使用自动化脚本实现)

意义2:

   不用担心ServerB的用户密码是否发生变更,是要你有私钥,ServerB配置了公钥,你就可以使用公钥访问ServerB中,配置了公钥的用户。

   (注意,下面提到的./ssh 目录,是在用户目录下的./ssh目录。 

        比如配置在root下面, 那么,你就是以root用户登录的。)

     

■连接时  使用到的命令 (在ServerA上执行的命令)

ssh -i /root/.ssh/id_rsa_serverB  user001@serverB

===

scp -i /root/.ssh/id_rsa_serverB  /AAA/BBB/a.txt user001@serverB:/AAA/CCC/a.txt

===

sftp -i /root/.ssh/id_rsa_serverB  user001@serverB << EOFmkdir CCCchmod 755 CCCmput a.txt /home/user001/CCC/a.txtchmod 644  /home/user001/CCC/a.txtbyeEOF

FTP相关命令(手机FTP服务启动应用)_sun0322的博客-CSDN博客

各种命令

・sftp

sftp -i /XXX/XXX/id_rsa user001@server001 <

配置好了的话,默认使用 -i 对应的私钥

// TODO

===

・ssh

ssh -i /XXX/XXX/id_dsa user001@server001

==

・scp

scp -i /XXX/XXX/id_dsa /XXX/FROM/*.csv user001@server001:/XXX/TO/

===

RSA 与 DSA

RSA 与 DSA 都是非对称加密算法。其中RSA的安全性是基于极其困难的大整数的分解(两个素数的乘积);DSA 的安全性是基于整数有限域离散对数难题。基本上可以认为相同密钥长度的 RSA 算法与 DSA 算法安全性相当。

■具体操作

1.首先  生成公钥  和 私钥 

(在ServerA上) ssh-keygen -t rsa 命令生成了一个密钥(私钥)和一个公钥,
(而且密钥可以设置自己的密码,)

==

 ==

原理说明

可以把密钥     理解成一把钥匙,   公钥   理解成这把钥匙对应的锁头,


把锁头(公钥)放到想要控制的serverB上, 锁住serverB, 只有拥有钥匙(密钥)的人, 才能打开锁头, 进入serverB并控制,
 
而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码,才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被人配了(私钥被人复制)
(其它serverC,使用ServerA的私钥,同样可以访问ServerB)

=== 

2.根据以上原理,配置公钥和私钥

在ServerB中,想登录的用户(user001) ./ssh 配置公钥authorized_keys

要控制的serverB的目录
在想登录的, 用户的目录下面
./ssh
   └authorized_keys   //  允许访问的Server的公钥信息,存放在这里 (比如,存放ServiceA的公钥信息)
   └konw_hosts       // serverB,访问过的其它的server的信息   (■补充说明1中解释)
 

3.连接 

 在ServerA中,使用私钥连接 ServerB

===■最后, 在本地用ssh命令的 -i 参数指定本地密钥, 并登录:ssh -i /root/.ssh/id_rsa_serverB  user001@serverB(有多个私钥,或者私钥没有保存在 ./ssh下面时,需要指定私钥的位置)===   

===

■补充说明1 :konw_hosts 文件

作用:

   如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

例:AAServer  连接  BBServer

AA(例子中是本地电脑)通过ssh首次连接到BB(例子中是Linux的虚拟机),BB会将公钥1(host key)传递给AA,

AA将公钥1存入(登录用户目录下的.ssh文件夹\)known_hosts文件中,

IP 地址  是  BB(Linux虚拟机)的IP 

===

以后AA再连接BB时,BB依然会传递给AA一个公钥2,

OpenSSH会核对公钥,通过对比公钥1与公钥2 是否相同来进行简单的验证,

如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

■公钥 以及  私钥 的内容

■生成公钥 私钥  时,使用到的命令 ssh-keygen 的简单介绍

ssh-keygen -t rsa

(windows系统中,也有这个命令)
====
-t: (type) 指定密钥的加密算法(一般 ed25519 , rsa),省略默认使用RSA。ssh-keygen -t rsa
-b: (bits) 指定密钥的二进制位数,数值越大加密解密的开销越大,同时密钥的安全程度越高,一般设置 1024 或者 2048 ssh-keygen -b 1024
-C: (comment) 指定密钥文件的注释,格式username@host: ssh-keygen -t rsa -b 2048 -C xxx1@email.com 生成
====

ssh-keygen [-q] [-b bits] [-C comment] [-f output_keyfile] [-m format]                [-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa] [-N new_passphrase] [-O option] [-w provider]


 

■参考  (工作中使用到的单词(软件开发))

工作中使用到的单词(软件开发)_sun0322的博客-CSDN博客

  └40. RAS // ssh-keygen(linux 命令)  // private key(私钥) , public key (公钥)

===

■其它通信安全的相关知识

1.什么是:公钥,私钥,证书 ,以及 HTTPS,

公钥与私钥,HTTPS详解_玩名堂_的博客-CSDN博客

2.使用JDK创建证书   (并在 自己的 Web工程中 使用证书)

使用JDK中的 keytool【创建证书】・【查看】・【使用】_sun0322的博客-CSDN博客_keytool查看证书

3.网络通信相关知识(整理在SFDC相关的资料中)

外部系统连接SFDC,获取SFDC侧的数据_sun0322的博客-CSDN博客_sfdc系统

4.证明书安装(no trusted certificate found 时,需要用安装证明书的方式,来通过认证)

HttpClient 使用时,出现「no trusted certificate found」的原因 (JDK没有安装相应的证明书)_sun0322的博客-CSDN博客

Keytool –import –keystore im.jks –file certificate.cer// certificate.cer 是要访问https网站的证明书// 安装后,证明书信息,已被添加到List中keytool -list  -keystore cacerts -storepass changeit

5.客户端证书     (和【 https 网站 的 CA证书】, 分别是 两个 证书。)

【客户端证书  (SSL証明書(個人証明書))】是 用于证明客户端用户身份的数字证书
网站如何设置,让访问者,必须在客户端浏览器安装证书后,才能访问网站。

这个一般在服务器端设置:
比如下面链接中介绍的

如何要求客户端出示“客户端证书”后,才能访问网站 - 张天利 - 博客园

---

6.在浏览器中查看  客户端证书・信任的证书

(Edge) ⇒【設定】 ⇒【プライバシー、検索、サービス 】⇒ 【セキュリティ】 ⇒ 証明書の管理

(Edge) ⇒设置 ⇒  隐私,搜索服务 ⇒ 安全性 ⇒ 管理证书 

 ---

7.ssh,scp,sftp等命令无密码使用(通过公钥,私钥实现)

ssh-keygen(linux 命令) 创建 private key(私钥) , public key (公钥),实现ssh,scp,sftp命令无密码连接_sun0322的博客-CSDN博客

---

■网络通信相关知识

1.tracert  路由查询命令

Windows系统下,tracert路由跟踪指令详解_秦岭熊猫的博客-CSDN博客_windows路由跟踪命令

2.网关和代理服务器的异同

网关和代理服务器的异同_huangshulang1234的博客-CSDN博客_代理服务器和网关的区别

3.密钥库文件格式(.jks(Java Keystore)  .ks .jce  .p12 .pfx.....),  证书格式(.cer .crt/.rsa  .p7c/.p7m/.p7s  .p12.....)

证书格式区别 & pvk & spc & cer_steel7c4的博客-CSDN博客_ca证书文件格式

4.cacerts 是一个信任库。信任库用于验证对等方的身份。  // 是certified authority certificates 的缩写  

certified    英 [ˈsɜːtɪˌfaɪd] adj. 被证明的,有保证的,具有证明文件的
authority    英 [ɔːˈθɒrɪtɪ]  n. 权力;行政管理机构;当局;当权者;权威;权威人士
  ( authorized [ˈɔːθəˌraɪzd]  权威认可的,经授权的   // 401 Unauthorized  )
certificate  英 [səˈtɪfɪkɪt] n.文凭;执照;证明,证书

---

来源地址:https://blog.csdn.net/sxzlc/article/details/126356471

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ssh-keygen(linux 命令) 创建 private key(私钥) , public key (公钥),实现ssh,scp,sftp命令无密码连接

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

目录