文章目录
密码学知识
- 密码加密由两种方式,分别为单钥加密与双钥加密;
加密方法 | 单钥加密(private key cryptography) | 双钥加密(public key cryptography) |
---|---|---|
加密与解密区别 | 加密和解密过程都用同一套密码 | 加密和解密过程用的是两套密码 |
密钥有几把 | 1把 | 2把(公钥和私钥) |
安全性 | 低 | 高 |
通用的加密算法 | DES(Data Encryption Standard) | RSA( Rivest-Shamir-Adleman) |
-
双钥加密的原理如下:
a) 公钥和私钥是一一对应的关系,有一把公钥就必然有一把与之对应的、独一无二的私钥,反之亦成立。
b) 所有的(公钥, 私钥)对都是不同的。
c) 用公钥可以解开私钥加密的信息,反之亦成立。
d) 同时生成公钥和私钥应该相对比较容易,但是从公钥推算出私钥,应该是很困难或者是不可能的。 -
在双钥体系中,公钥用来加密信息,私钥用来数字签名
-
存在公司主要业务是发布RSA数字证书
因为任何人都可以生成自己的(公钥,私钥)对,所以为了防止有人散布伪造的公钥骗取信任,就需要一个可靠的第三方机构来生成经过认证的(公钥,私钥)对。 -
公钥加密的概念:参考《数字签名是什么?》
SSH原理及使用
一、什么是SSH?
简单说,SSH是一种网络协议,用于计算机之间的加密登录。在当前的计算机上使用SSH协议登录另一台远程计算机,被认为是安全的。
二、SSH的过程
前提:Linux Server与User1互相存储了对方的公钥
(1)远程服务器Linux server收到User1的登录请求,Linux server把自己的公钥发给用户。
(2)User1使用这个公钥,将登录密码加密后,发送回来。
(3)Linux server用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
三、具体操作
前提条件
两台电脑在同一局域网之下。可以通过命令ping来查看两台电脑是否能够通信
ping IP地址
这里的ip地址指的是另一台电脑的ip地址。
安装openssh
- 服务器端
sudo apt install openssh-server
- 客户端
sudo apt install openssh-client
通过密码方式登录
每次都需要输入密码才可以登录
ssh 登录用户名@服务器ip地址
The authenticity of host 'host (192.168.1.5)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)?
登录用户名@服务器ip地址 password:
解释:
- 登录用户名:输入用户名,是服务器的用户名。并非本机的用户名;
- 密码:即服务器用户的锁屏密码;
- 第一次连接服务器会出现上面的提示,之后就不会了。
通过无密码方式登录
1.生成密钥对
ssh-keygen #输入该命令
Generating public/private rsa key pair.
Enter file in which to save the key (/home/cp-jiang/.ssh/id_rsa): #1
Enter passphrase (empty for no passphrase): #2
Enter same passphrase again: #3
-
解释:
-
#1处这里提示用户输入生成的私钥的名称,默认即可;
-
#2提示输入密码,注意这里的密码是用来保证私钥的安全的,可以不设置密码(如果设置了,打开/home/cp-jiang/.ssh/id_rsa文件的时候需要输入刚设置的密码);
-
#3 是重复 #2 输入的密码;
-
-
打开/home/cp-jiang/.ssh文件夹可以看到两个文件id_rsa和id_rsa.pub(id_rsa存放私钥,id_rsa.pub存放公钥)
-
在服务器与客户端都需要执行这一步
2.将客户端的的公钥保存在服务器
将客户端与服务器的公钥保存在服务器的authorized_keys文件中
- 操作服务器
cd /home/cp-jiang/.ssh
cp id_rsa.pub authorized_keys
- 操作客户端
scp ~/.ssh/id_rsa.pub 登录用户名@服务器ip地址
cat id_rsa.pub >> .ssh/authorized_keys;将公钥写入
.ssh 目录的权限是700,authorized_keys权限是644
- 注意 authorized_keys 文件是可以保存多个公钥信息的,每个公钥以换行分开。
3.登录
ssh 登录用户名@服务器ip地址
putty的使用
- putty是以个软件,集成了ssh等协议,更方便。
Linux和windows下都可使用putty
- login as :输入的是user的名字,而不是host的名字;或者输入root
- 如何判断user还是host?
打开终端后,终端的显示是user@host
- 如何判断user还是host?
- 密码:锁屏密码
MTPuTTY,更方便的终端形式
- 优点:可以在同一窗口以多标签的形式打开终端;
下载链接:http://ttyplus.com/multi-tabbed-putty/
总结
- 通过ssh远程访问服务器其实是一件很简单的事情,前提是你得搞清楚几个概念:
- 登录用户名:并非自己本机的用户名
- 服务器地址
- 公钥与私钥
- 登录密码与私钥密码
- 修改sshd_config文件的内容以及其他内容,参考下面的一些博客。
常见错误
密码输入错误
Permission denied, please try again.
参考
- SSH原理与运用(一):远程登录:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
- SSH远程连接服务器:https://www.jianshu.com/p/0d19bd29e1e1
- 最佳实践:使用SSH连接Linux服务器:https://www.jianshu.com/p/59c4fc2684be
- ssh使用公钥登录远程服务器:https://www.jianshu.com/p/288271bc9b2e
- SSH 登录流程分析:https://segmentfault.com/a/1190000012333003
- ssh 登录出现的几种错误以及解决办法:https://blog.51cto.com/jschu/1769475