linRichielinRichie
前端
Python
Linux
ChatGPT
  • B 站
  • 500px
前端
Python
Linux
ChatGPT
  • B 站
  • 500px
  • Ansible

    • Ansible: 基本操作
    • Ansible: 安装
    • Ansible: 简介
    • YAML: 文件格式
    • Playbook

      • Playbook: 介绍
      • Playbook: 操作
    • 模块

      • Yum模块常用参数
    • 实战

      • Ansible 实战
  • Anaconda

    • Anaconda命令
  • Iptables

    • Iptable: 防火墙
    • iptables 用法
  • Systemd

    • 系统服务配置
    • 系统服务启动文件
    • 性能优化

      • Linux 系统监控
      • Linux 系统性能优化
      • Linux 系统故障诊断
      • Linux 系统日志管理
  • Network

    • 用一张图解释 8 种流行的网络协议
    • 反子网掩码
    • 交换机端口模式
    • eNSP 软件
    • 华为交换机配置命令
    • eNSP静态路由实验
  • Commands

    • 命令别名:alias
    • 多类型资源统计工具: dstat
    • history配置
    • unzip命令
    • Linux用户到期登录时间和随机密码
    • 常用 Command
    • ssh

      • ssh-keygen
      • linux ssh命令
  • CI/CD

    • Jenkins CI/CD 管道
  • Kubernetes

    • Docker系列学习

      • 01. 什么是Docker
      • 02. Docker安装
      • 03. 使用Docker镜像
      • 04. 利用commit理解镜像构成
      • 05. 操作Docker容器
      • 06. 使用Dockerfile定制镜像
      • 07. Dockerfile指令详解
      • 08. Dockerfile多阶段创建
      • 09. 访问仓库
      • 10. 修改docker的启动项
      • 11. Nexus3.x的私有仓库
      • 12. docker-hub加速器
      • 13. 数据管理
      • 14. 使用网络
  • Shell编程

    • Shell 编程基础
    • Shell 脚本执行消耗的时间
    • Shell 自动生成简介

linux ssh命令

  • 简介
    • 基本特点
  • SSH的加密技术
    • SSH1 vs SSH2
  • 基本配置
    • 服务端配置
    • 客户端命令
    • 文件传输
  • 免密登录配置
    • 1. 生成密钥对
    • 2. 分发公钥
  • 故障排查
    • 1. 连接测试
    • 2. 调试模式
  • 安全建议

简介

SSH (Secure Shell) 是一种加密的网络传输协议,可以在不安全的网络中为网络服务提供安全的传输环境。

基本特点

  • 默认端口:22
  • 进程名:sshd (守护进程)
  • 主要组件:
    • openssh:提供 SSH 服务
    • openssl:提供加密程序

SSH的加密技术

SSH1 vs SSH2

  1. SSH1

    • 不验证客户端密钥
    • 安全性较低
  2. SSH2

    • 使用 Diffie-Hellman 密钥交换
    • 支持 RSA 和 DSA 密钥
    • RSA:支持加密和数字签名
    • DSA:仅支持数字签名

基本配置

服务端配置

# 查看配置文件
vim /etc/ssh/sshd_config

# 服务管理
systemctl start sshd    # 启动
systemctl stop sshd     # 停止
systemctl restart sshd  # 重启
systemctl reload sshd   # 重载配置

客户端命令

# 远程登录
ssh -p22 username@hostname

# 远程执行命令
ssh username@hostname "ls /root"

# 远程执行脚本
ssh -t username@hostname "bash /path/to/script.sh"

# 查看已知主机
cat ~/.ssh/known_hosts

文件传输

# SCP 命令
scp -P22 -r local_file username@hostname:/remote_path  # 上传
scp -P22 username@hostname:/remote_file local_path     # 下载

# SFTP 命令
sftp -P22 username@hostname
put local_file                  # 上传文件
get remote_file                 # 下载文件

免密登录配置

1. 生成密钥对

# 进入 .ssh 目录
cd ~/.ssh

# 生成密钥对
ssh-keygen -t rsa

2. 分发公钥

# 复制公钥到目标服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub username@hostname

# 指定端口
ssh-copy-id -i ~/.ssh/id_rsa.pub -p port username@hostname

故障排查

1. 连接测试

# 测试网络连通性
ping hostname

# 测试端口连通性
telnet hostname 22

# 查看服务状态
systemctl status sshd

2. 调试模式

# 开启详细日志
ssh -vvv username@hostname

# 检查防火墙
systemctl status firewalld

安全建议

  1. 基本防护

    • 修改默认端口
    • 禁用 root 远程登录
    • 使用密钥认证
  2. 访问控制

    • 限制登录 IP
    • 设置登录超时
    • 限制登录失败次数

注意:

  • 定期更新系统和 SSH 服务
  • 保护好私钥文件
  • 监控异常登录

参考资料:

  • OpenSSH 文档
  • SSH 安全指南
最近更新时间:
Prev
ssh-keygen