SSH安全外壳协议

简介

SSH 为 Secure Shell 的缩写,是一种网络安全协议, 专为远程登录会话和其他网络服务提供安全性的协议。通过使用 SSH,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。从客户端来看,有两种方式验证:基于密码、基于密钥


基于密码

基于密码的验证过程
说明:
1. 当客户端发起 ssh 请求,服务器会把自己的公钥发送给用户;
2. 用户会根据服务器发来的公钥对密码进行加密;
3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功;

基于密钥

基于密钥的验证过程
说明:
1. 首先在客户端生成一对密钥(公钥、私钥) ;
2. 客户端将生成的公钥拷贝到需要访问的服务端机器上;
3. 当客户端再次发送一个连接请求,包括 ip、用户名;
4. 服务端得到客户端的请求后,会到 authorized_keys 中查找,如果有相应的 IP 和用户,就会随机生成一个字符串,例如: qwer;
5. 服务端将使用客户端拷贝过来的公钥对随机字符串 qwer 进行加密,然后发送给客户端;
6. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端;
7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录。


OpenSSH的使用
  • OpenSSH 是 SSH 协议的免费开源实现。OpenSSH 由客户端和服务端的软件组成。

    • 服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是 sshd 进程,提供了对远程连接的处理。
    • 客户端包含 ssh 程序以及像 scp(远程拷贝)、 slogin(远程登陆)、 sftp(安全文件传输)等其他的应用程序。

    默认情况下, CentOS 系统会自带安装 OpenSSH 服务。可以使用下面的命令查看ps -ef | grep openssh
    https://img-blog.csdn.net/20180909170443191?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjIyOTA1Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70” alt=”这里写图片描述” title=”” />mNzZG4ubmV0L3dlaXhpbl80MjIyOTA1Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

    示例

    配置虚拟机1(node1)至虚拟机2(node2)的免密码登陆

    1. 主机(node1)生成密钥
      命令为ssh-keygen -t rsa,按下四次回车键确认
      这里写图片描述
    2. node1拷贝密钥
      在node1输入命令为 ssh-copy-id nod2
      这里写图片描述
    3. 进行登陆测试,输入命令ssh node2第一次登陆需要验证,输入node2的登陆密码
      这里写图片描述

    以上就是SS安全外壳协议的基本内容。

猜你喜欢

转载自blog.csdn.net/weixin_42229056/article/details/82560143
今日推荐