前言
本篇将简述的内容:Linux系统下的SSH服务
一、概述
SSH:
安全外壳协议(工作在传输层和应用层的协议),提供安全可靠的远程连接。
提供了多种身份验证机制
在Linux系统中,SSH服务是一项重要的功能,它提供了安全的远程访问和管理方式。用于在网络中安全地远程登录和执行命令。
二、身份验证机制
密码验证
每次需要手动提供密码
密钥对验证
配置提交密钥对后,即可实现免密登录
三、服务特点
1.安全性:
SSH使用加密技术来保护数据的传输过程,防止数据被窃听或篡改。它还提供了身份验证机制,确保只有授权的用户可以访问服务器。
2.远程登录:
SSH允许用户通过远程登录方式访问服务器,无需物理接触服务器。这对于远程管理服务器、远程协作和远程故障排除非常有用。
3.文件传输:
SSH支持安全的文件传输,可以通过SCP(Secure Copy)或SFTP(SSH File Transfer Protocol)协议在本地计算机和远程服务器之间传输文件。
4.端口转发:
SSH可以通过端口转发功能将本地计算机上的服务映射到远程服务器上,实现远程访问本地服务的功能。
四、验证过程
客户端发起请求:
ssh 服务器IP地址
客户端确认是否保存指纹信息,yes确认保存
输入目标主机密码
打开子shell建立会话
若退出,则使用exit
五、基本参数
1.服务名:
sshd
2.端口号:
TCP/22
3.配置文件:
(一)服务器端
/etc/ssh/sshd_config
ssh主程序sshd的配置文件
/etc/ssh/ssh_host_*
服务器的公钥和私钥文件
~/.ssh/authorized_keys 1
密钥库文件
(二)客户端
/etc/ssh/ssh.config
客户端的全局配置文件
~/.ssh/known_hosts
客户端存储服务器主机指纹的文件
~/.ssh.id_rsa 1
客户端生成的私钥
~/.ssh.id_rsa.pub
客户端生成的公钥
没有绝对的客户端和服务器,主要是看谁是发起端,谁是接收端
六、配置文件解析
/etc/ssh/sshd_config 文件内容
Port # 监听端口 Listenaddress # 监听地址,0.0.0.0表示监听所有地址 PubkeyAuthentication # 是否启用密钥对验证 PasswordAuthentication # 是否启用密码验证 PermitEmptyPasswords # 是否启用空密码,密码验证时,最好关闭 AuthorizedKeysFile # .ssh/authorized_keys 密钥库文件
/etc/ssh/ssh_config 文件内容
ConnectTimeout #连接超时时间
七、基本操作
1.ssh
作用:远程连接的客户端工具
格式:
ssh [options] [user@]hostname [command]
可实现
(一)指定用户登录
(二)不登陆服务器shell执行命令
2.scp
作用:基于ssh的远程复制命令
可实现
本地<----->本地
本地<----->远程
远程<----->远程
着重说下本地到远程
(一)从本地复制到远程
命令格式:
scp local_file remote_username@remote_ip:remote_file
scp local_file remote_ip:remote_file
(二)从远程复制到本地
命令格式:
scp remote_username@remote_ip:remote_file local_file
scp remote_ip:remote_file local_file
3.sftp
作用:安全的文件传输程序
因为 SFTP 是基于 SSH 协议的,所以默认的身份认证方法与 SSH 协议保持一致。
4.ssh-copy-id
作用:提供免交互的密码验证
客户端生成密钥对
ssh-keygen
客户端将公钥上传至服务器
ssh-copy-id
服务器启用密钥对验证
客户端测试
总结
SSH服务是Linux系统中重要的远程访问和管理工具,通过深入探索其原理、配置、安全性和常见问题解决方法,读者可以更好地理解和使用SSH服务,提高系统的安全性和效率。