SSH key的简介

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境[1]。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接[2]。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。SSH使用频率最高的场合是类Unix系统,但是Windows操作系统也能有限度地使用SSH。015年,微软宣布将在未来的操作系统中提供原生SSH协议支持[3],Windows 10 1803版本已提供OpenSSH工具[4]。

SSH key的生成

linux平台下使用如下命令

ssh-keygen -t rsa -C "xxx@xxx.com"

-t 参数用来指定密钥的加密算法,一般会选择 DSA 算法或 RSA 算法。 如果省略该参数,默认使用 RSA 算法。 -f 指定文件名称,默认会生成 ~/.ssh/id_rsa / id_rsa_pub -C 参数可以为密钥文件指定新的注释,格式为username@host。 -b 参数指定密钥的二进制位数。这个参数值越大,密钥就越不容易被破-解,但是加密解密的计算开销也会加大。 一般来说,-b至少应该是1024,更安全一些可以设为2048或者更高。

SSH key存放路径

当执行了上面的命令,生产ssh key 后,key就保存在当前用户下的.ssh 目录。 你的私钥被放在了~/.ssh/id_rsa 这个文件里,而公钥被放在了 ~/.ssh/id_rsa.pub 这个文件里。

SSH key的使用

把主机A的公钥放在主机B上 scp -r /root/.ssh/id_rsa.pub 192.168.31.147:/root/.ssh/authorized_keys

此时用A登陆B就不需要密码了 ssh B_ip