ssh的原理及使用

密码学知识

  • 密码加密由两种方式,分别为单钥加密与双钥加密;
加密方法 单钥加密(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
  • 密码:锁屏密码

MTPuTTY,更方便的终端形式

总结

  • 通过ssh远程访问服务器其实是一件很简单的事情,前提是你得搞清楚几个概念:
    • 登录用户名:并非自己本机的用户名
    • 服务器地址
    • 公钥与私钥
    • 登录密码与私钥密码
  • 修改sshd_config文件的内容以及其他内容,参考下面的一些博客。

常见错误

密码输入错误

Permission denied, please try again.

参考

猜你喜欢

转载自blog.csdn.net/weixin_41074793/article/details/87935836