Linux中SSH配置与使用:安全的远程访问方式

您所在的位置:网站首页 ssh服务默认的端口是多少位 Linux中SSH配置与使用:安全的远程访问方式

Linux中SSH配置与使用:安全的远程访问方式

2024-07-09 12:28| 来源: 网络整理| 查看: 265

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系统中不可或缺的远程访问工具。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3