SSH协议
SSH定义:
- SSH是Secure Shell的缩写,它是一种网络协议,为客户端提供安全的Shell环境,用于远程登录和会话管理。SSH通过加密通信,确保数据传输的保密性和完整性。
- SSH协议存在多种实现,系统默认使用的是OpenSSH,默认端口为TCP 22。
OpenSSH:
- 服务名称:
sshd
- 服务端主程序:
/usr/sbin/sshd
- 客户端主程序:
/usr/bin/ssh
- 服务端配置文件:
/etc/ssh/sshd_config
- 服务名称:
配置OpenSSH服务
服务监听选项:
- 配置文件路径:
/etc/ssh/sshd_config
配置内容示例:
Port 22 Protocol 2 ListenAddress 192.168.1.100 UseDNS no
配置解释:
Port 22
: 指定服务监听的端口号。Protocol 2
: 指定使用的协议版本。ListenAddress 192.168.1.100
: 监听特定的IP地址。UseDNS no
: 禁用DNS反向解析。
- 配置文件路径:
用户登录控制:
禁止root用户和空密码用户登录:
PermitRootLogin no PermitEmptyPasswords no
配置登录时间和重试次数:
LoginGraceTime 2m MaxAuthTries 6
允许或禁止特定用户登录:
AllowUsers alice admin@192.168.1.101
注意:不要与DenyUsers同时使用。
登录验证:
- 验证服务器中的本地用户账号。
验证方式:
密码验证:
PasswordAuthentication yes
密钥对验证:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
SSH命令
远程安全登录:
格式:
ssh [user@]host [command]
示例:
ssh alice@192.168.1.100 ssh 192.168.1.100
- 连接时需输入密码。
SCP命令:
- 用于远程安全复制文件。
格式:
scp user@host:file1 file2 scp file1 user@host:file2 scp -r user@host:远端目录 本地目录
SFTP命令:
- 安全FTP上传下载。
格式:
sftp user@host
示例2(不同场景):
配置文件路径:
/etc/ssh/sshd_config
配置内容示例:
Port 2200 Protocol 2 ListenAddress 172.16.0.1 UseDNS no
用户登录控制:
PermitRootLogin no PermitEmptyPasswords no LoginGraceTime 1m MaxAuthTries 3 AllowUsers bob tom@172.16.0.2
登录验证:
PasswordAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile /home/user/.ssh/authorized_keys
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。