侧边栏壁纸
  • 累计撰写 29 篇文章
  • 累计创建 6 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux服务_SSH

Administrator
2026-02-01 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

Linux 服务_SSH

介绍

  • ssh 是一种用于安全远程登录和其他网络服务的协议。它是目前在 Linux 和类 Unix 系统中远程管理最常用的方式。通过 ssh,可以加密地连接到远程主机,执行命令、传输文件、进行端口转发等操作。

开启服务

  1. 命令

    systemctl start ssh
    
  2. 验证,系统开启 22 端口证明 ssh 服务启动

    image-20250529201207947

配置文件

/etc/ssh/sshd_config

开启开机自启

systemctl enable ssh

windows 连接 kali Linux

  • 命令(打开 Windows 的 cmd 终端)

ssh 用户名@kali的IP地址		#第一次连接需要主动输入 yes,往后不再需要。
exit		#退出连接
image-20250529202141931

centos 连接 kali Linux

  • 同 windows 连接 kali Linux 相同。

第三方 ssh 客户端连接 kali Linux

  • 原理相同,在对应位置输入主机 IP、用户、密码等即可连接。

  • 一些软件列表

    名称

    平台

    特点说明

    WindTerm

    Windows/Linux/macOS

    高性能终端模拟器,支持 SSH、Telnet、串口、SFTP,UI 现代、启动速度快

    PuTTY

    Windows/Linux

    经典老牌,轻量级,支持 SSH/Telnet/Serial

    OpenSSH

    全平台

    官方标准工具,Linux/macOS 默认自带,Windows 10+ 也可启用

    Termius (Free)

    全平台

    现代化界面、跨平台同步(免费版功能有限)

    Xshell

    Windows

    免费用于个人,商业用途需授权,功能全面

无密码,公钥登陆

  1. 功能:在 Linux 系统中配置 无密码 ssh 公钥登录,可以让不输入密码的情况下远程登录服务器,是一种更安全、自动化程度更高的方式。

  2. 原理:

    • 首先生成密钥对(遵循非对称加密算法(如 RSA、ED25519 等)),公钥可以公开,私钥必须保密。

    • 公钥置于服务器,私钥在本地。

    • SSH 客户端 向远程服务器发起连接请求。

    • 远程服务器检测到该用户的 ~/.ssh/authorized_keys 中存在公钥。

    • 服务器从该公钥中提取加密信息,向客户端发出一个 加密挑战(challenge)。

    • 本地 ssh 客户端 使用私钥对该挑战进行解密或签名(证明自己持有正确的私钥)。

    • 服务器验证签名是否与公钥匹配。

    • 如果匹配,则认证通过,允许登录;否则拒绝。

  3. 生成密钥

    ssh-keygen -t rsa		#用 rsa 生成密钥对
    
    image-20250529204940795
  4. 公钥位置

    • 将公钥保存到 /root/.ssh/authorized_keys

    cat /home/kali/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
    
  5. 私钥传输

    • 切换目录到文件 id_rsa 所在的目录。

    • 通过 python -m http.server 命令,在当前目录开启 8000 端口用于其他客户端对文件的下载。

      image-20250529205949266
    • 在客户端上执行命令下载私钥。

      wget http://kali的IP地址:8000/id_rsa
      
      image-20250529210327758
    • 修改私钥权限登陆

      image-20250529210603835
      • 如上图所示,表明私钥权限不对,无法无密码登陆,需要修改私钥权限。

        chmod 600 id_rsa
        
        image-20250529211057796
      • 修改私钥权限为 600 即可成功实现无密码登陆。

Windows cmd 无密钥登陆

  • 同样可以通过在服务端的 python -m http.server 命令进行私钥的传输。

  • 开启服务后,直接在 Windows 上的浏览器下载(http://服务端IP地址:8000/id_rsa)即可。

  • 下载后登陆发现同样会显示 bad permissions,表面私钥权限不正确,需修改。

    • 在 Windows 修改私钥权限步骤:

      • 右键私钥文件的 属性 进入属性选项栏。

      • 单击 安全,进入后单击 高级 进入高级安全设置界面。

      • 单机 禁用继承,并在弹出的复选框中选择“从此对象中删除所有已继承的权限”。

        image-20250530183338477
      • 随后单机 添加,在弹出的权限项目框中单击 选择主体 添加对象。

      • 添加的对象可以通过在 cmd 中使用 whoami 命令查询,添加成功后单机 检查名称(若成功,则名称下方会出现一条横线)。

        image-20250530184220435
      • 最后一路确定即可修改完成。

  • 此时再次尝试在 cmd 中无密钥登陆即可成功。

    image-20250530184440478

第三方 ssh 客户端无密钥登陆

  • 新建会话。

  • 在输入密码的复选框中选择修改好权限的密钥文件即可(各个第三方 ssh 客户端原理大体相同)。

    image-20250530185143288
  • 此时即可实现无密钥登陆。

0

评论区