ssh-keygen(linux 命令) 创建 private key(私钥) , public key (公钥),实现ssh,scp,sftp命令无密码连接_sun0322的博客-CSDN博客
目录
在ServerB中,想登录的用户(user001)的 ./ssh 配置公钥authorized_keys
■生成公钥 私钥 时,使用到的命令 ssh-keygen 的简单介绍
40. RAS // ssh-keygen(linux 命令) // private key(私钥) , public key (公钥)
SSH密钥登录使用非对称加密,
用户通过自己的密钥登录,
(注意:私钥必须自己保存,不能泄漏,公钥则是公开,可以对外发送保存。)
公钥和私钥是一对一的关系:只有对应的私钥才能解密对应公钥加密的数据。
ServerA 无密码 访问 ServerB
(可无密码使用 ssh,scp等命令,
不用输入密码,当有连接服务器,文件传输等需求时,可以使用自动化脚本实现)
不用担心ServerB的用户密码是否发生变更,是要你有私钥,ServerB配置了公钥,你就可以使用公钥访问ServerB中,配置了公钥的用户。
(注意,下面提到的./ssh 目录,是在用户目录下的./ssh目录。
比如配置在root下面, 那么,你就是以root用户登录的。)
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 << EOF
- mkdir CCC
- chmod 755 CCC
- mput a.txt /home/user001/CCC/a.txt
- chmod 644 /home/user001/CCC/a.txt
-
- bye
- EOF
FTP相关命令(手机FTP服务启动应用)_sun0322的博客-CSDN博客
===
(在ServerA上) ssh-keygen -t rsa 命令生成了一个密钥(私钥)和一个公钥,
(而且密钥可以设置自己的密码,)

==

==
可以把密钥 理解成一把钥匙, 公钥 理解成这把钥匙对应的锁头,
把锁头(公钥)放到想要控制的serverB上, 锁住serverB, 只有拥有钥匙(密钥)的人, 才能打开锁头, 进入serverB并控制,
而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码,才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被人配了(私钥被人复制)
(其它serverC,使用ServerA的私钥,同样可以访问ServerB)
===
要控制的serverB的目录
在想登录的, 用户的目录下面
./ssh
└authorized_keys // 允许访问的Server的公钥信息,存放在这里 (比如,存放ServiceA的公钥信息)
└konw_hosts // serverB,访问过的其它的server的信息 (■补充说明1中解释)
- ===
- ■最后, 在本地用ssh命令的 -i 参数指定本地密钥, 并登录:
- ssh -i /root/.ssh/id_rsa_serverB user001@serverB
- (有多个私钥,或者私钥没有保存在 ./ssh下面时,需要指定私钥的位置)
- ===
-
-
-
===
如果公钥不同,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 -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博客
===