ToB企服应用市场:ToB评测及商务社交产业平台

标题: Linux中SSH配置与使用:安全的远程访问方式 [打印本页]

作者: 魏晓东    时间: 2024-6-11 12:53
标题: Linux中SSH配置与使用:安全的远程访问方式

SSH(Secure Shell)是一种加密的网络协议,为Linux系统提供了安全、加密的远程访问方式。通过正确配置和使用SSH,管理员可以远程管理服务器,传输文件,并确保通信的机密性。本文将深入探究Linux中SSH的配置和使用,提供详实的示例代码,帮助管理员更全面地了解和运用SSH技术。
安装和启动SSH服务

  1. # 示例代码:安装OpenSSH服务器
  2. sudo apt-get install openssh-server    # Ubuntu/Debian
  3. sudo yum install openssh-server        # CentOS/RHEL
复制代码
  1. # 示例代码:启动SSH服务
  2. sudo systemctl start ssh
  3. sudo systemctl enable ssh
复制代码
配置SSH服务

  1. # 示例代码:编辑sshd_config文件
  2. sudo nano /etc/ssh/sshd_config
复制代码
在配置文件中,可以设置SSH服务监听的端口、允许的用户、克制root登录等。
  1. # 示例代码:更改SSH服务端口
  2. Port 2222
复制代码
  1. # 示例代码:禁止root用户直接登录
  2. PermitRootLogin no
复制代码
重启SSH服务

  1. # 示例代码:重启SSH服务使配置生效
  2. sudo systemctl restart ssh
复制代码
生成SSH密钥对

  1. # 示例代码:生成SSH密钥对
  2. ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_key
复制代码
使用SSH密钥登录

将公钥复制到目标服务器:
  1. # 示例代码:复制公钥到目标服务器
  2. ssh-copy-id user@remote_server
复制代码
或手动复制:
  1. # 示例代码:手动复制公钥到目标服务器
  2. cat ~/.ssh/my_key.pub | ssh user@remote_server 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
复制代码
配置SSH客户端

  1. # 示例代码:编辑SSH客户端配置文件
  2. nano ~/.ssh/config
复制代码
  1. # 示例代码:为远程主机配置别名
  2. Host my_server
  3.     HostName remote_server
  4.     User user
  5.     Port 2222
  6.     IdentityFile ~/.ssh/my_key
复制代码
使用SSH传输文件

  1. # 示例代码:使用SCP传输文件到远程主机
  2. scp /path/to/local/file user@remote_server:/path/to/remote/directory
复制代码
使用SSH隧道

  1. # 示例代码:建立SSH隧道
  2. ssh -L 8080:localhost:80 user@remote_server
复制代码
使用ProxyJump配置跳板主机

  1. # 示例代码:配置ProxyJump跳板主机
  2. Host final_server
  3.     HostName final_server
  4.     User user
  5.     Port 2222
  6.     IdentityFile ~/.ssh/my_key
  7. Host jump_server
  8.     HostName jump_server
  9.     User user
  10.     Port 2222
  11.     IdentityFile ~/.ssh/my_key
  12. Host remote_server
  13.     HostName remote_server
  14.     User user
  15.     Port 2222
  16.     IdentityFile ~/.ssh/my_key
  17.     ProxyJump jump_server
复制代码
使用SSH配置文件提高安全性

  1. # 示例代码:设置SSH配置文件权限
  2. chmod 600 ~/.ssh/config
复制代码
配置SSH登录消息

  1. # 示例代码:配置SSH登录消息
  2. sudo nano /etc/ssh/sshd_config
复制代码
在配置文件中添加Banner,以显示登录前的提示信息。
  1. # 示例代码:配置Banner消息
  2. Banner /etc/ssh/banner_message
复制代码
配置SSH禁用暗码登录

  1. # 示例代码:配置禁用密码登录
  2. sudo nano /etc/ssh/sshd_config
复制代码
确保暗码登录被禁用,只允许公钥认证。
  1. # 示例代码:禁用密码登录
  2. PasswordAuthentication no
复制代码
限定SSH登录时间和IP范围

  1. # 示例代码:限制SSH登录时间
  2. sudo nano /etc/security/time.conf
复制代码
在配置文件中添加时间限定规则。
  1. # 示例代码:SSH限制时间规则
  2. sshd;*;user;Al0800-1700
复制代码
  1. # 示例代码:限制SSH登录IP范围
  2. sudo nano /etc/hosts.allow
复制代码
  1. # 示例代码:仅允许特定IP范围访问SSH
  2. sshd : 192.168.1.0/24
复制代码
监控SSH登录实验

  1. # 示例代码:安装并配置fail2ban监控SSH登录尝试
  2. sudo apt-get install fail2ban    # Ubuntu/Debian
  3. sudo yum install fail2ban        # CentOS/RHEL
复制代码
  1. # 示例代码:配置fail2ban监控SSH日志
  2. sudo nano /etc/fail2ban/jail.local
复制代码
  1. # 示例代码:SSH监控规则
  2. [sshd]
  3. enabled = true
  4. port = ssh
  5. filter = sshd
  6. logpath = /var/log/auth.log
  7. maxretry = 5
复制代码
配置多因素身份验证

  1. # 示例代码:安装并配置Google Authenticator
  2. sudo apt-get install libpam-google-authenticator    # Ubuntu/Debian
  3. sudo yum install google-authenticator               # CentOS/RHEL
复制代码
  1. # 示例代码:配置PAM启用Google Authenticator
  2. sudo nano /etc/pam.d/sshd
复制代码
在/etc/ssh/sshd_config中添加以下行:
  1. # 示例代码:启用ChallengeResponseAuthentication
  2. ChallengeResponseAuthentication yes
复制代码
使用SSH-Agent管理密钥

  1. # 示例代码:启动SSH-Agent
  2. eval $(ssh-agent)
复制代码
  1. # 示例代码:添加私钥到SSH-Agent
  2. ssh-add ~/.ssh/my_key
复制代码
使用SSH配置文件优化体验

  1. # 示例代码:编辑SSH配置文件
  2. nano ~/.ssh/config
复制代码
在配置文件中添加一些选项,以提高SSH的使用体验,比方自动断开不活跃的毗连:
  1. # 示例代码:配置自动断开不活跃连接
  2. Host *
  3.     ServerAliveInterval 60
复制代码
定期更新和维护SSH

  1. # 示例代码:定期更新SSH软件包
  2. sudo apt-get update && sudo apt-get upgrade    # Ubuntu/Debian
  3. 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企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4