SSH秘钥介绍与使用

前言

最近将ubuntu移植到树莓派的时候需要添加ssh秘钥,但是我不知道是干嘛的,所以在这里做个笔记。

SSH介绍

ssh是一种加密的网络传输协议。可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。使用频率最高的场合类Unix系统,但是Windows操作系统也能有限度地使用SSH。2015年,微软宣布将在未来的操作系统中提供原生SSH协议支持,Windows 10 1809 版本已提供可手动安装的 OpenSSH工具。
总的来说是一个传输协议,默认端口22

SSH登录

使用ssh远程连接服务器,有两种身份校验方式:账号密码和秘钥。使用秘钥的方式理论上更加安全,而且免去了输入密码的步骤,使用起来更方便
  ssh秘钥的生成和使用:
1.秘钥由谁生成
这是比较容易搞乱的一点。这里以A、B两台服务器为例,假设A需要ssh登录B,那么应该由那台服务器生成秘钥呢。可能有人以为像门锁一样,主人家负责装锁配钥匙,把钥匙交给要开门的人使用,所以由被访问的B服务器生成秘钥。

事实恰恰相反,秘钥由访问请求方A服务器生成,并把生成的公钥交给B导入;公钥可以在多台服务器导入,一台服务器导入了A的公钥,即意味着承认A的有访问自己权限,所以A可以用一套密钥登录多台服务器。

2.账号
访问和被访问的服务,需要有相同的账号,而且密钥由该账号生成。

3.密钥生成
在A服务器上执行命令:
ssh-keygen -t [rsa|dsa]
rsa和dsa是生成密钥常用的两种加密算法,其他可选算法还有ecdsa、rsa1等。
命令执行过程需要用户输入的地方连续回车即可(enter passphrase的别输入,否则登录的时候还是得输入密钥密码)。
执行成功后,在用户home目录下的.ssh子目录里会生成私钥文件和公钥文件:id_rsa,id_rsa.pub或id_dsa,id_dsa.pub。

4.公钥导入
方法一:
把公钥文件id_rsa.pub上传到B服务器,然后执行:
cat id_rsa.pub >> ~/.ssh/authorized_keys
将id_rsa.pub的内容,追加到文件~/.ssh/authorized_keys中

方法二:
在A服务器上使用命令cat /.ssh/id_rsa.pub查看公钥内容,将内容复制追加到B服务器的文件/.ssh/authorized_keys中(请注意不要删除或覆盖该文件中已有的内容)。

5.修改权限
A服务器上的.ssh和秘钥文件的权限在ssh-keygen生成时已设好,无须特别设置。B服务器上如果是首次添加authorized_keys,需要修改权限:
chmod 600 authorized_keys
设置authorized_keys权限

chmod 700 -R .ssh
设置.ssh目录权限

6.登录
在A服务器上执行:
ssh ip/hostname(B服务器的ip或主机名)
即可登录。

补充

这里我是用下面这个软件自动生成window下ssh,添加到另外的服务器那边。
SSH秘钥介绍与使用_第1张图片

你可能感兴趣的:(其他)