博客
关于我
linux服务之ssh
阅读量:795 次
发布时间:2023-02-04

本文共 2316 字,大约阅读时间需要 7 分钟。

SSH技术指南:架构、配置与常用命令

SSH架构与平台支持

SSH(Secure Shell)是一种安全的远程登录协议,基于客户-服务器架构,支持加密通信和_authentication_协议。

  • 架构:C/S(客户端-服务器)模式
  • 开发语言:C语言
  • 服务器端:部署于Linux平台
  • 客户端:通常通过CLI界面使用SSH命令连接

官方资源与版本管理

  • 官网http://www.openssh.com/portable.html
  • 版本管理
    • 移动版OpenSSH标记为“p”(如4.0p1)。
    • 官方OpenBSD版本不使用“p”标识,而是通过版本号控制稳定发布。

CentOS7环境下的SSH包管理

[root@my bin]# cat /etc/redhat-releaseCentOS Linux release 7.1.1503 (Core)[root@my bin]# rpm -qa | grep sshopenssh-server-6.6.1p1-11.el7.x86_64openssh-clients-6.6.1p1-11.el7.x86_64libssh2-1.4.3-8.el7.x86_64openssh-6.6.1p1-11.el7.x86_64

SSH免密码登录小技巧

  • 生成SSH密钥对

    在Linux环境下使用ssh-keygen生成RSA密钥对:

    ssh-keygen -t rsa -P '' # 生成空密码对

    生成后会在/root/.ssh目录下创建id_rsa(私钥)和id_rsa.pub(公钥)。

  • 复制并配置公钥

    将A机器的id_rsa.pub复制到B机器,并命名为authorized_keys

    scp /root/.ssh/id_rsa.pub 192.168.1.181:/root/.ssh/authorized_keys

    确保authorized_keys权限为600。

  • 首次登录提示

    首次登录时需要输入B机器的root密码,并确认“yes”以允许登录。

  • 常见问题与解决方法

    1. "Write failed: Broken pipe" 错误

    解决方法

    • 客户端设置:在~/.ssh/目录下添加config文件,配置:
      Host *  ServerAliveInterval 60
    • 服务器配置:在/etc/ssh/sshd_config中添加:
      ClientAliveInterval 60
    • 临时连接:使用命令行参数:
      ssh -o ServerAliveInterval=60 user@sshserver

    2. Bogon问题(不可路由地址)

    解决方法

    • 修改客户端/etc/ssh/ssh_config,将Host *下的GSSAPIAuthentication设为no
      Host *  GSSAPIAuthentication no

    3. SFTP文件传输

    普通用户权限限制

    • 使用SFTP代替FTP,确保安全性。
    • 修改/etc/ssh/sshd_config,启用SFTP:
      Subsystem sftp internal-sftp
    • 建立普通用户账号,禁止使用Shell:
      useradd -s /bin/false -G sftpusers test
    • 设置用户主目录权限:
      chown root.test /home/testchmod 755 /home/test

    SSH配置参数说明

    服务器端(/etc/ssh/sshd_config)

    • AddressFamily:指定地址族,可选值为anyinetinet6
    • AcceptEnv:控制传递环境变量,默认不传递。
    • AllowGroups:限制登录组的权限。
    • AllowUsers:允许特定用户登录。
    • PubkeyAuthentication:启用公钥认证,默认支持。
    • StrictHostKeyChecking:严格检查主机密钥,默认启用。
    • UseDNS:反向解析主机名,默认启用。
    • X11Forwarding:允许X11转发,默认禁用。
    • GatewayPorts:控制端口转发,默认禁止。

    客户端(/etc/ssh/ssh_config)

    • Host:匹配远程主机。
    • ForwardAgent:启用代理转发,默认禁用。
    • ForwardX11:允许X11转发,默认禁用。
    • CheckHostIP:验证主机IP地址,默认启用。
    • StrictHostKeyChecking:严格检查主机密钥,默认禁用。
    • LogLevel:日志级别,默认为INFO
    • Port:默认端口为22。
    • Cipher:支持多种加密算法,默认启用。
    • EscapeChar:设置转义字符,默认为~

    SSH会话管理

    • 查看版本信息
      ssh -V
    • 临时切换本地:输入~^Z进入挂起状态,随后恢复。
    • 获取会话信息:输入ssh -s查看详细信息。

    端口转发与X11转发

    • 本地转发
      ssh -L 7001:localhost:389
    • 远程转发
      ssh -R 7001:localhost:389 123.138.111.146 -p 50090
    • X11转发:确保X Server显示编号与Putty兼容,例如localhost:16.0

    常见错误与解决方法

    • X11显示问题
      • 检查X Server配置。
      • 确保 DISPLAY 环境变量正确。
    • 端口转发失败
      • 检查防火墙设置。
      • 确保目标端口正确。
    • 权限问题
      • 检查authorized_keys权限。
      • 确保SFTP用户目录权限为750或755。

    通过以上配置与优化,SSH环境可以更安全、高效地使用。

    转载地址:http://xjkfk.baihongyu.com/

    你可能感兴趣的文章
    Linux搭建SMB服务
    查看>>
    Linux搭建ss5 (socks5)代理服务器
    查看>>
    Linux搭建TFTP服务
    查看>>
    Linux搭建局域网yum源和后期在yum源中更新rpm包方法
    查看>>
    Linux搭建测试环境详细步骤
    查看>>
    Linux操作系统基础命令
    查看>>
    Linux操作系统安装与gcc和内核升级
    查看>>
    Linux文件内容查询命令
    查看>>
    Linux文件处理工具cut
    查看>>
    Linux文件处理工具sed
    查看>>
    linux文件夹右上角,手把手教你找出Linux系统的大文件
    查看>>
    Linux文件夹打包发送到本地
    查看>>
    linux文件夹操作的常用命令【一例一图】
    查看>>
    linux文件属性
    查看>>
    Linux文件打包压缩、解压缩、备份命令使用方法
    查看>>
    Linux文件操作命令详解
    查看>>
    Linux文件权限
    查看>>
    Linux文件查找命令find,xargs详述
    查看>>
    Linux文件查找命令find,xargs详述【转】
    查看>>
    linux文件特殊权限:SetUID、SetGID、Sticky BIT
    查看>>