ToB企服应用市场:ToB评测及商务社交产业平台
标题:
【DevOps】详细解析:SSH 协议的工作原理、安全配置及实用本领
[打印本页]
作者:
宝塔山
时间:
2024-6-23 16:52
标题:
【DevOps】详细解析:SSH 协议的工作原理、安全配置及实用本领
目次
一、SSH的关键特性
二、SSH 原理
三、SSH 工具和下令
四、安装 SSH
Debian/Ubuntu 系统
CentOS/RHEL 系统
Fedora 系统
五、配置 SSH
六、设置密钥认证
七、防火墙设置
利用 ufw (Ubuntu/Debian)
利用 firewalld (CentOS/RHEL/Fedora)
八、总结
SSH(Secure Shell)是一种网络协议,用于在不安全的网络中提供安全的长途登录和其他安全网络服务。SSH 允许加密传输数据,防止数据在传输过程中被截取和篡改,从而提供了一个安全的长途操作方式。
一、SSH的关键特性
1、加密
:SSH 利用强加密算法(如 AES、ChaCha20、Blowfish)来加密整个会话,确保数据传输的安全性和隐私。
2、认证
:SSH 支持多种认证方式,包罗基于密码的认证和基于公钥的认证。其中,基于公钥的认证更为安全,因为它依靠于非对称密钥对。
3、完整性掩护
:SSH 利用 MAC(Message Authentication Code)算法来掩护数据的完整性,防止数据在传输过程中被篡改。
4、信道复用
:SSH 支持在一个加密连接上同时传输多个逻辑通讯通道,使得用户可以通过一个 SSH 连接实现多种数据传输任务,如下令行Shell访问、端口转发和文件传输。
5、端口转发
:SSH 可以将任意的 TCP 端口通过 SSH 连接转发,分为当地端口转发、长途端口转发和动态端口转发,这提高了网络通讯的安全性。
6、代理功能
:SSH 可以配置为 SOCKS 代理,允许用户通过 SSH 客户端转发欣赏器等应用的网络哀求,从而实现安全欣赏。
7、会话管理
:SSH 提供了会话层管理,用户可以在不同的会话中实行下令,支持会话暂停、断点续传等操作。
二、SSH 原理
SSH 通讯过程分为三个重要阶段:
1、协议协商
:SSH 客户端和服务器端起首协商利用的 SSH 协议版本,然后选择加密算法、压缩算法、MAC 算法等。
2、密钥交换
:通过密钥交换算法(如 Diffie-Hellman)安全地协商出一个共享密钥,用于之后的会话加密。这个阶段也包罗服务器的身份验证,通常通过比较服务器的公钥指纹来完成。
3、用户认证
:客户端利用选定的认证方法(密码、公钥等)向服务器证明其身份。
三、SSH 工具和下令
1、ssh
:最常用的 SSH 客户端下令,用于启动一个加密的 Shell 会话到长途服务器。
ssh username@hostname
复制代码
2、scp
:基于 SSH 的安全文件复制工具。
scp source_file username@hostname:destination_folder
scp username@hostname:source_file destination_folder
复制代码
3、sftp
:安全文件传输协议,提供了一个交互式的文件传输会话。
sftp username@hostname
复制代码
4、ssh-keygen
:用于生成 SSH 密钥对的工具。
ssh-keygen -t rsa -b 4096
复制代码
5、ssh-copy-id
:用于将当地的 SSH 公钥复制到长途服务器的 ~/.ssh/authorized_keys 文件,简化公钥认证的设置。
ssh-copy-id username@hostname
复制代码
6、ssh-agent
和
ssh-add
:ssh-agent 是一个密钥管理器,ssh-add 是用于将私钥加入到 ssh-agent 的工具,用于管理 SSH 私钥和主动化密码输入。
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa
复制代码
四、安装 SSH
在 Linux 系统中,最常见的 SSH 实现是 OpenSSH。以下是在不同 Linux 发行版上安装 OpenSSH 服务端和客户端的方法:
Debian/Ubuntu 系统
1、安装 OpenSSH 服务器和客户端:
sudo apt update
sudo apt install openssh-server openssh-client
复制代码
2、启动 SSH 服务:
sudo systemctl start ssh
复制代码
3、设置 SSH 服务开机自启:
sudo systemctl enable ssh
复制代码
4、检查 SSH 服务状态:
sudo systemctl status ssh
复制代码
CentOS/RHEL 系统
1、安装 OpenSSH 服务器和客户端:
sudo yum install openssh-server openssh-clients
复制代码
2、启动 SSH 服务:
sudo systemctl start ssh
d
复制代码
3、设置 SSH 服务开机自启:
sudo systemctl enable ssh
d
复制代码
4、检查 SSH 服务状态:
sudo systemctl status ssh
d
复制代码
Fedora 系统
1、安装 OpenSSH 服务器和客户端:
sudo dnf install openssh-server openssh-clients
复制代码
2、启动 SSH 服务:
sudo systemctl start ssh
d
复制代码
3、设置 SSH 服务开机自启:
sudo systemctl enable ssh
d
复制代码
4、检查 SSH 服务状态:
sudo systemctl status ssh
d
复制代码
五、配置 SSH
SSH 的配置文件位于 /etc/ssh/sshd_config。以下是一些常见的配置项:
1、Port:
指定 SSH 服务器监听的端口,默认为 22。
Port 22
复制代码
2、PermitRootLogin:
控制是否允许 root 用户登录。保举设置为 no,利用普通用户登录后再切换到 root。
PermitRootLogin no
复制代码
3、PasswordAuthentication:
是否允许基于密码的登录。为了安全,可以设置为 no,利用密钥登录。
PasswordAuthentication yes
复制代码
4、PubkeyAuthentication:
是否允许基于公钥的登录。
PubkeyAuthentication yes
复制代码
5、AllowUsers:
指定允许长途登录的用户。
AllowUsers username
复制代码
6、UsePAM:
是否利用 PAM(Pluggable Authentication Modules)。
UsePAM yes
复制代码
六、设置密钥认证
1、在客户端生成密钥对:
ssh-keygen -t rsa -b 4096
复制代码
2、将公钥复制到服务器:
ssh-copy-id username@server_ip
复制代码
3、确保服务器的 ~/.ssh/authorized_keys 包含客户端的公钥。
测试密钥登录:
ssh username@server_ip
复制代码
七、防火墙设置
确保防火墙允许 SSH 端口 (默认为 22) 的流量。
利用 ufw (Ubuntu/Debian)
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status
复制代码
利用 firewalld (CentOS/RHEL/Fedora)
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
复制代码
八、总结
通过上述步调,你可以在 Linux 系统上安装和配置 SSH,利用更安全的密钥认证方式登录。这些步调提供了根本的安全配置,但根据具体需要,你可能需要调解更多的高级配置选项。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4