论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
安全
›
网络安全
›
Linux中SSH配置与使用:安全的远程访问方式 ...
Linux中SSH配置与使用:安全的远程访问方式
魏晓东
金牌会员
|
2024-6-11 12:53:53
|
显示全部楼层
|
阅读模式
楼主
主题
829
|
帖子
829
|
积分
2487
SSH(Secure Shell)是一种加密的网络协议,为Linux系统提供了安全、加密的远程访问方式。通过正确配置和使用SSH,管理员可以远程管理服务器,传输文件,并确保通信的机密性。本文将深入探究Linux中SSH的配置和使用,提供详实的示例代码,帮助管理员更全面地了解和运用SSH技术。
安装和启动SSH服务
# 示例代码:安装OpenSSH服务器
sudo apt-get install openssh-server # Ubuntu/Debian
sudo yum install openssh-server # CentOS/RHEL
复制代码
# 示例代码:启动SSH服务
sudo systemctl start ssh
sudo systemctl enable ssh
复制代码
配置SSH服务
# 示例代码:编辑sshd_config文件
sudo nano /etc/ssh/sshd_config
复制代码
在配置文件中,可以设置SSH服务监听的端口、允许的用户、克制root登录等。
# 示例代码:更改SSH服务端口
Port 2222
复制代码
# 示例代码:禁止root用户直接登录
PermitRootLogin no
复制代码
重启SSH服务
# 示例代码:重启SSH服务使配置生效
sudo systemctl restart ssh
复制代码
生成SSH密钥对
# 示例代码:生成SSH密钥对
ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_key
复制代码
使用SSH密钥登录
将公钥复制到目标服务器:
# 示例代码:复制公钥到目标服务器
ssh-copy-id user@remote_server
复制代码
或手动复制:
# 示例代码:手动复制公钥到目标服务器
cat ~/.ssh/my_key.pub | ssh user@remote_server 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
复制代码
配置SSH客户端
# 示例代码:编辑SSH客户端配置文件
nano ~/.ssh/config
复制代码
# 示例代码:为远程主机配置别名
Host my_server
HostName remote_server
User user
Port 2222
IdentityFile ~/.ssh/my_key
复制代码
使用SSH传输文件
# 示例代码:使用SCP传输文件到远程主机
scp /path/to/local/file user@remote_server:/path/to/remote/directory
复制代码
使用SSH隧道
# 示例代码:建立SSH隧道
ssh -L 8080:localhost:80 user@remote_server
复制代码
使用ProxyJump配置跳板主机
# 示例代码:配置ProxyJump跳板主机
Host final_server
HostName final_server
User user
Port 2222
IdentityFile ~/.ssh/my_key
Host jump_server
HostName jump_server
User user
Port 2222
IdentityFile ~/.ssh/my_key
Host remote_server
HostName remote_server
User user
Port 2222
IdentityFile ~/.ssh/my_key
ProxyJump jump_server
复制代码
使用SSH配置文件提高安全性
# 示例代码:设置SSH配置文件权限
chmod 600 ~/.ssh/config
复制代码
配置SSH登录消息
# 示例代码:配置SSH登录消息
sudo nano /etc/ssh/sshd_config
复制代码
在配置文件中添加Banner,以显示登录前的提示信息。
# 示例代码:配置Banner消息
Banner /etc/ssh/banner_message
复制代码
配置SSH禁用暗码登录
# 示例代码:配置禁用密码登录
sudo nano /etc/ssh/sshd_config
复制代码
确保暗码登录被禁用,只允许公钥认证。
# 示例代码:禁用密码登录
PasswordAuthentication no
复制代码
限定SSH登录时间和IP范围
# 示例代码:限制SSH登录时间
sudo nano /etc/security/time.conf
复制代码
在配置文件中添加时间限定规则。
# 示例代码:SSH限制时间规则
sshd;*;user;Al0800-1700
复制代码
# 示例代码:限制SSH登录IP范围
sudo nano /etc/hosts.allow
复制代码
# 示例代码:仅允许特定IP范围访问SSH
sshd : 192.168.1.0/24
复制代码
监控SSH登录实验
# 示例代码:安装并配置fail2ban监控SSH登录尝试
sudo apt-get install fail2ban # Ubuntu/Debian
sudo yum install fail2ban # CentOS/RHEL
复制代码
# 示例代码:配置fail2ban监控SSH日志
sudo nano /etc/fail2ban/jail.local
复制代码
# 示例代码:SSH监控规则
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
复制代码
配置多因素身份验证
# 示例代码:安装并配置Google Authenticator
sudo apt-get install libpam-google-authenticator # Ubuntu/Debian
sudo yum install google-authenticator # CentOS/RHEL
复制代码
# 示例代码:配置PAM启用Google Authenticator
sudo nano /etc/pam.d/sshd
复制代码
在/etc/ssh/sshd_config中添加以下行:
# 示例代码:启用ChallengeResponseAuthentication
ChallengeResponseAuthentication yes
复制代码
使用SSH-Agent管理密钥
# 示例代码:启动SSH-Agent
eval $(ssh-agent)
复制代码
# 示例代码:添加私钥到SSH-Agent
ssh-add ~/.ssh/my_key
复制代码
使用SSH配置文件优化体验
# 示例代码:编辑SSH配置文件
nano ~/.ssh/config
复制代码
在配置文件中添加一些选项,以提高SSH的使用体验,比方自动断开不活跃的毗连:
# 示例代码:配置自动断开不活跃连接
Host *
ServerAliveInterval 60
复制代码
定期更新和维护SSH
# 示例代码:定期更新SSH软件包
sudo apt-get update && sudo apt-get upgrade # Ubuntu/Debian
sudo yum update # CentOS/RHEL
复制代码
确保SSH软件包和密钥文件都得到实时的更新。
总结
在本文中,深入探究了Linux中SSH的配置与使用,为管理员提供了详实的示例代码和最佳实践,以确保远程访问方式的安全性与高效性。从安装与启动SSH服务,到更高级的配置如登录消息、禁用暗码登录、限定登录时间和IP范围、监控登录实验、以及多因素身份验证,本文细致展示了SSH在系统安全管理中的全方位应用。
管理员通过学习配置SSH服务的基础步骤,如修改端口、禁用root登录、生成SSH密钥对等,进一步了解了怎样配置SSH客户端、传输文件、创建SSH隧道、以及使用SSH配置文件等高级技巧。通过配置登录消息、禁用暗码登录、限定登录时间和IP范围,管理员增加了系统的抗攻击性。别的,利用fail2ban监控登录实验、配置多因素身份验证、使用SSH-Agent管理密钥等高级配置,为系统提供了更为强盛的安全保障。
终极,管理员需要关注系统定期更新与维护,确保SSH软件包和密钥文件始终保持最新。通过这些最佳实践,管理员将能够在远程操作中更为自信地应对各种场景,确保系统的稳固、高效运行,并在安全性方面达到最佳程度。SSH的强盛功能和灵活配置,使其成为Linux系统中不可或缺的远程访问工具。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
魏晓东
金牌会员
这个人很懒什么都没写!
楼主热帖
基础常用dos命令
Unity技术手册 - Shader实现灵魂状态 ...
云原生之旅 - 14)遵循 GitOps 实践的 ...
.NET主流的几款重量级 ORM框架 ...
Vulnhub靶机-Al-Web-1
火山引擎 DataLeap 计算治理自动化解决 ...
vuluhub_jangow-01-1.0.1
Java集合框架(三)-HashSet
Android studio连接MySQL并完成简单的 ...
弱隔离级别 & 事务并发问题 ...
标签云
存储
挺好的
服务器
浏览过的版块
Java
快速回复
返回顶部
返回列表