5分钟学习SSH
本文的主线 定义 => 原理 => 应用: (免密)安全登录&安全传输
定义
SSH是什么?
- SSH是一种网络协议 用于两台机器之间: (免密)安全登录&安全传输
原理
基于非对称加密 即需要一对密钥 使用如下命令生成
1 | ssh-keygen -t rsa -C "test@test.com" |
默认生成至~/.ssh/目录下
1 | ls -l ~/.ssh/id_rsa* |
id_rsa是私钥(自己保留不能泄露) id_rsa.pub是公钥(交给要访问的对象)
应用
安全登录
(免密)安全登录Ubuntu 1804 Server
- 首先 确认Server已安装并启动SSH Service
1 | apt list | grep openssh-server |
- 然后 将密钥对中的id_rsa.pub公钥追加至 Server待登录用户的~/.ssh/authorized_keys
1 | cat /home/op/.ssh/authorized_keys |
- 最后 本地就可以(免密)安全登录Server
1 | ssh op@server-ip |
安全传输
(免密)安全下载GitLab源码
- 如果基于HTTP协议 需要输入账号密码
1 | git clone https://gitlab.com/testing/api-test.git |
- 将密钥对中的id_rsa.pub公钥添加至 GitLab中的https://gitlab.com/profile/keys
- 此时基于SSH协议 可以(免密)安全下载GitLab源码
1 | git clone ssh://git@gitlab.com:10133/testing/api-test.git |