一、ssh 基本概念
Secure Shell 简称 ssh,是一种加密传输协议。ssh 协议可以保证在网络连接不安全的环境中,安全地传输数据。ssh 协议通过使用公钥加密技术,来保证客户端与服务端之间通信的安全性。ssh 协议包括通信协议和加密协议两部分。通信协议用于服务器和客户端之间的相互通信,加密协议用于在通信内容中加入加密和解密操作。
二、ssh 配置
1. 生成密钥对
要使用 ssh 协议进行加密通信,首先需要在客户端和服务端之间共享一对密钥。密钥由公钥和私钥两个部分构成。公钥可以公开,而私钥必须保密。使用 ssh-keygen 命令在客户端生成密钥对:
ssh-keygen -t rsa -b 2048
该命令将在用户主目录下的 .ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件。其中,id_rsa.pub 是公钥,可以拷贝到服务端的授权文件中。
2. 授权
在服务端配置 ssh 授权文件,以允许特定用户通过 ssh 访问该主机。可以使用如下命令在服务端创建授权文件:
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
之后将客户端的公钥拷贝到服务端的授权文件中:
ssh-copy-id user@remote_host
3. 配置文件
ssh 配置文件为 /etc/ssh/sshd_config。可以根据需要修改配置文件中的参数来改变 ssh 的行为。以下是常用的一些配置参数:
# 修改 ssh 端口号
Port 22
# 禁止 root 账户登录
PermitRootLogin no
# 允许使用密钥进行登录
PubkeyAuthentication yes
# 允许空口令登录
PermitEmptyPasswords no
三、ssh 常用命令
1. ssh
ssh 命令用于建立与远程主机的安全连接。其用法如下:
ssh user@remote_host
其中,user 为在远程主机上的用户名,remote_host 为远程主机的地址。
2. scp
scp 命令用于在本地与远程主机之间复制文件。其用法如下:
scp local_file user@remote_host:remote_file
其中,local_file 为本地文件,remote_file 为远程主机上的目标文件。
3. sftp
sftp 命令用于和远程主机进行文件传输。其用法与 ftp 命令类似,使用方式如下:
sftp user@remote_host
然后可以使用 put 命令将本地文件上传到远程主机,使用 get 命令将远程主机的文件下载到本地。
四、总结
本文主要介绍了 ssh 协议的基本概念和使用方法,以及 ssh 的常用命令。ssh 是一种安全的网络传输协议,在网络连接不安全的环境下使用 ssh 协议可以保证数据的安全传输。