Linux SSH命令如何快速掌握?

SSH基础连接命令

语法格式

ssh [选项] 用户名@主机地址

常用参数

  • -p 端口号:指定SSH端口(默认22)
  • -i 密钥文件:使用私钥认证(如 -i ~/.ssh/id_rsa
  • -v:显示详细连接过程(调试用)

示例

ssh admin@192.168.1.100          # 默认端口登录
ssh -p 2222 user@example.com     # 指定端口登录

密钥认证:更安全的登录方式

步骤1:生成密钥对

ssh-keygen -t rsa -b 4096   # 生成4096位RSA密钥
  • 默认保存位置:~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)

步骤2:上传公钥到服务器

ssh-copy-id -i ~/.ssh/id_rsa.pub user@host  # 自动上传

或手动复制公钥内容到服务器的 ~/.ssh/authorized_keys 文件中

步骤3:密钥登录验证

ssh -i ~/.ssh/my_key user@host  # 使用指定私钥登录

高级应用场景

  1. 执行远程命令
    无需登录直接操作:

    ssh user@host "ls -l /var/log"  # 查看远程服务器日志
  2. 文件传输(SCP/SFTP)

    • SCP命令
      scp file.txt user@host:/remote/path   # 上传
      scp user@host:/remote/file.txt ./     # 下载
    • SFTP交互模式
      sftp user@host   # 启动SFTP会话
      sftp> put local_file  # 上传文件
      sftp> get remote_file # 下载文件
  3. 端口转发

    • 本地端口转发(访问远程服务):
      ssh -L 8080:localhost:80 user@host  # 本地8080映射到远程80端口
    • 远程端口转发(暴露本地服务):
      ssh -R 9000:localhost:3000 user@host  # 远程9000映射到本地3000端口

安全加固实践

  1. 禁用密码登录(修改服务器配置)
    编辑 /etc/ssh/sshd_config

    PasswordAuthentication no   # 关闭密码认证
    PermitRootLogin no          # 禁止root直接登录
    Port 8822                   # 更改默认端口

    重启服务:sudo systemctl restart sshd

  2. 使用Fail2ban防御暴力破解

    sudo apt install fail2ban  # Debian/Ubuntu
    sudo systemctl enable fail2ban
  3. 密钥文件权限检查
    确保私钥权限为600:

    chmod 600 ~/.ssh/id_rsa

常见问题解决

  • 连接超时
    检查防火墙:sudo ufw allow 22(或自定义端口)
    确认SSH服务状态:systemctl status sshd

  • 密钥登录失败
    验证服务器 authorized_keys 文件权限:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
  • “Host key verification failed”错误
    清除旧指纹:

    ssh-keygen -R hostname  # 更新已知主机记录

SSH是Linux系统管理的基石,掌握密钥认证、端口转发和安全配置能显著提升工作效率与系统安全性,建议:

  1. 始终使用密钥替代密码
  2. 定期更新SSH服务版本
  3. 通过ssh -v输出诊断复杂问题

引用说明

  • OpenSSH官方文档:https://www.openssh.com/manual.html
  • Linux man pages(man ssh
  • NIST安全配置指南:SP 800-123 基于Linux 5.x+内核及OpenSSH 8.9+版本验证*

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9387.html

(0)
酷番叔酷番叔
上一篇 18小时前
下一篇 17小时前

相关推荐

  • 常见问题如何快速自查解决?

    基础检查(90%的常见问题)检查命令拼写与格式确认命令无拼写错误(如 ipconfig 误输为 ipconifg),注意空格和符号:del /f 与 del/f 是不同指令,提示:复制官方命令文档粘贴执行(参考微软命令列表),验证命令适用范围部分命令需管理员权限(如 sfc /scannow):右键点击”命令提……

    2025年6月27日
    2200
  • 如何用绝对路径精准定位文件?

    绝对路径的基本格式不同操作系统的路径格式略有差异:Windows系统格式:盘符:\目录\子目录\文件示例:C:\Program Files\MyApp\config.txt⚠️ 注意:使用反斜杠 \,盘符后需加冒号(如 C:),Linux/macOS系统格式:/目录/子目录/文件示例:/home/user/do……

    2025年7月6日
    1100
  • cargo build 命令为何失败?

    在终端使用 Rust 的 cargo 工具执行命令如 cargo build 或 cargo ride 时,常遇到令人沮丧的错误信息,导致构建或运行失败。

    2025年7月5日
    1600
  • 为何高手偏爱命令行输入?

    命令行输入是人机交互的经典方式,用户直接输入文本指令操控计算机,它以高效、精准著称,无需图形界面,广泛用于系统操作、程序控制和自动化任务。

    5天前
    800
  • Ubuntu如何快速进入命令行?

    图形界面下启动终端(推荐新手使用)适用场景:日常操作、快速执行命令步骤:快捷键启动:同时按下 Ctrl + Alt + T(所有Ubuntu版本通用),终端窗口将立即弹出,图形菜单启动:点击屏幕左上角 “Activities”(或按 Win 键) → 搜索栏输入 “Terminal” → 点击终端图标,或通过应……

    2025年7月12日
    1100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信