SSH登录到远程主机@openSSH

文章目录

    • abstract
      • SSH
      • OpenSSH
    • 安装
      • linux
      • windows
      • 小结
    • 相关软件
      • windows上的ssh客户端
      • linux上的ssh软件
    • 建立ssh连接😊
      • 作为SSH客户端连接远程服务器的步骤
        • 使用图形化方式
        • 使用Windows内置SSH客户端(命令行方式)
      • 注意事项FAQ😊
    • 免密登录😊
      • 密钥对创建与交换
    • 相关问题和资源

abstract

SSH

SSH(Secure Shell)是一种网络协议,设计用于提供安全的远程登录和命令执行环境,以及数据传输服务。SSH协议能够对网络中的用户身份进行验证,并且通过加密技术确保数据传输过程中的安全性,避免在网络中传输敏感信息时遭受窃听、篡改或冒充等攻击。

OpenSSH

  • OpenSSH软件官网
  • OpenSSH则是SSH协议的一个免费开源实现,它包含了一系列工具,如sshd(SSH服务器端守护进程)、ssh(SSH客户端程序)以及其他相关工具如sftp(安全文件传输)、scp(安全拷贝)等。OpenSSH实现了SSHv1和SSHv2协议,但出于安全考虑,现代系统默认几乎都禁用了SSHv1,主要使用SSHv2。

安装

linux

  • linux发行版比较多,但是也能够用命令行方便地安装

windows

  • 通常windows上使用ssh client就够了(默认自带)

  • 而很少用windows去做服务器的,但是Microsoft也给出了如何启动ssh服务的方法

  • windows上使用openssh

    • client and server Get started with OpenSSH for Windows | Microsoft Learn

    • 检查是否已经安装了相应软件(管理员身份打开powershell)

      PS>Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'Name  : OpenSSH.Client~~~~0.0.1.0
      State : InstalledName  : OpenSSH.Server~~~~0.0.1.0
      State : NotPresent
    • 如果是NotPresent,就说明未安装,执行一下命令安装(国内网络可能需要好几分钟才能下载下来)

      • # Install the OpenSSH Client
        Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0# Install the OpenSSH Server
        Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
        
    • 例如安装OpenSSH server完毕(以sshd调用)

      • PS>Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0Path          :
        Online        : True
        RestartNeeded : False
        
    • 初次ssh服务设置(包括防火墙等,以管理员身份打开powershell执行)

      • # Start the sshd service
        Start-Service sshd# OPTIONAL but recommended:
        Set-Service -Name sshd -StartupType 'Automatic'# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
        if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
        } else {Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
        }
        

小结

  • SSH是协议层面的概念,定义了如何安全地远程访问和管理计算机的方法。
  • OpenSSH是实现SSH协议的具体软件项目,是Linux和类Unix操作系统中最常见的SSH工具集,同时也是许多其他操作系统上的可选组件,它允许用户在不同系统间通过加密通道安全地进行远程登录、命令执行和文件传输操作。
  • windows上同样也可以使用openSSH

相关软件

windows上的ssh客户端

  • 较新版本的windows自带ssh客户端

    PS>gcm ssh|select SourceSource
    ------
    C:\WINDOWS\System32\OpenSSH\ssh.exe
    
  • 其他客户端

    • PuttyDownload PuTTY: latest release (0.80) (greenend.org.uk)
    • Vscode+extensions:Developing on Remote Machines using SSH and Visual Studio Code

linux上的ssh软件

  • 常用的ubuntu上使用openSSH-server
    • OpenSSH Server | Ubuntu

建立ssh连接😊

  • How to Use SSH to Connect to a Remote Server in Linux or Windows (phoenixnap.com)

  • 建立SSH(Secure Shell)链接的基本步骤通常包括以下几个方面

  • 这里假设你是在Windows环境下作为客户端去连接远程Linux服务器(最常见的情形)

作为SSH客户端连接远程服务器的步骤

使用图形化方式
  • 不同的软件有各自的使用文档,这里不展开
使用Windows内置SSH客户端(命令行方式)
  1. 确认OpenSSH已安装:

    • 在Windows 10之后,系统自带了OpenSSH,检查是否已经安装并启用SSH客户端。
  2. 连接到服务器:

    • 打开命令提示符或PowerShell,输入以下命令:

      ssh 用户名@远程服务器地址
      
    • 例如:ssh user@example.com

    • Note:远程服务器的地址在没有域名的情况下,使用ip地址会更加可靠;

      • 对于局域网环境,可能只需要知道被链接的机器的名字以及上面的一个可登录的用户和密码就可以了
      • 但是经过试验不一定能够链接的上去,而用ip地址通常总是没问题
  3. 输入密码或使用密钥:

    • 如果服务器配置允许密码登录,输入你的密码进行连接。

    • 若要使用密钥登录,确保私钥文件(.pem.ppk)在~/.ssh目录下,并且已设置正确的权限,可通过 -i 参数指定私钥文件:

      ssh -i ~/.ssh/id_rsa user@example.com
      

注意事项FAQ😊

  • 确保远程服务器上的SSH服务正在运行(对于Linux系统通常是sshd服务)。
  • 确保网络连接畅通,且防火墙设置允许SSH流量通过。
  • 对于首次连接到的远程服务器,可能会出现安全警告,需要手动确认其主机指纹。
  • 如果默认状态无法链接,则可能需要用其他方式编辑ssh服务器端的sshd_config配置文件来允许链接(参考其他资料)
    • 如果是虚拟机,就得用虚拟机提供的窗口进行编辑
    • 云主机有自己的方案

免密登录😊

密钥对创建与交换

如果你希望使用SSH密钥对进行无密码登录,还需要执行以下步骤:

  1. 在本地计算机上创建SSH密钥对:

    ssh-keygen -t rsa
    

    这将在~/.ssh目录下生成公钥(id_rsa.pub)和私钥(id_rsa)。

  2. 将公钥上传到远程服务器的~/.ssh/authorized_keys文件中:

    • 使用scp:scp "$home\.ssh\id_*pub" cxxu@192.168.37.129:~/.ssh/authorized_keys

      • 模板

        #把两个变量(用户名和目标主机地址改为自己的具体情况)
        $username=cxxu;$target_host=192.168.37.129
        scp "$home\.ssh\id_*pub" $user_name@target_host:~/.ssh/authorized_keys
        
      • 先用ssh配合普通密码登录到目标主机(linux主机为例),计算两个变量的取值

        • 通过执行以下两条命令获取

        • #查询当前用户和主机名
          echo "$(whoami)@$(hostname)"#查询ip地址
          ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '^127'
    • 虽然可以使用ssh-copy-id,但是windows上通常不会自带这个程序

      • ssh-copy-id -i ~/.ssh/id_rsa.pub user@example.com
        
    • 或者手动复制粘贴公钥内容到远程服务器的相应文件中。

  3. 确保远程服务器的/etc/ssh/sshd_config配置文件允许公钥认证,并重启SSH服务。

相关问题和资源

  • vscode@ssh远程编程@管理员权限保存文件问题_vscode保存远程服务器文件没权限-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/809755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对LSTM的通俗易懂理解--可变权重

RNN的问题&#xff1a;长期依赖&#xff0c;即对短期的数据敏感&#xff0c;对比较远的长期数据不敏感&#xff0c;这是因为RNN隐藏状态权重在不同时刻是共享相同的&#xff0c;随着时间步的增加&#xff0c;梯度会指数级地衰减或者增长&#xff0c;导致梯度消失或者爆炸&#…

【黑马头条】-day06自媒体文章上下架-Kafka

文章目录 今日内容1 Kafka1.1 消息中间件对比1.2 kafka介绍1.3 kafka安装及配置1.4 kafka案例1.4.1 导入kafka客户端1.4.2 编写生产者消费者1.4.3 启动测试1.4.4 多消费者启动 1.5 kafka分区机制1.5.1 topic剖析 1.6 kafka高可用设计1.7 kafka生产者详解1.7.1 同步发送1.7.2 异…

配置vlan和vlan间路由、配置vlan的ip和vrrp、mstp和主次根

简单的通信实验 拓扑图&#xff1a; 1.配置vlan和链路聚合 Sw1 & sw2 undo info-center enable vlan batch 10 20 30 40 int eth-trunk 1 trunkport g 0/0/1 to 0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 30 40 int g0/0/3 port link-type trunk p…

Spring Boot 经典面试题(五)

1.Spring Boot的事务管理是如何实现的&#xff1f; Spring Boot 使用 Spring Framework 中的事务管理功能来实现事务管理。Spring Framework 提供了几种不同的事务管理方式&#xff0c;其中最常用的是基于注解的声明式事务管理。 在 Spring Boot 中&#xff0c;你可以通过 Tr…

Unity 布局 HorizontalLayoutGroup 多行 换行

演示Gif&#xff1a; 现象: 子元素宽度不同&#xff0c;超出父元素后不会换行 GridLayout则是固定宽度也不能用&#xff0c; 需求 水平排版的同时&#xff0c;超出父级后换行 代码&#xff1a; 催更就展示[狗头]

Kafka消息队列架构与应用场景探讨:面试经验与必备知识点解析

本文将深入探讨Kafka的消息队列架构、应用场景,以及面试必备知识点与常见问题解析,助你在面试中展现出坚实的Kafka技术功底。 一、Kafka消息队列架构 1.分布式架构与角色分工解释Kafka的Broker、Producer、Consumer、Topic、Partition等核心概念,以及它们在分布式系统中的角…

Linux:Redis7.2.4的简单在线部署(1)

注意&#xff1a;我写的这个文章是以最快速的办法去搭建一个redis的基础环境&#xff0c;作用是为了做实验简单的练习&#xff0c;如果你想搭建一个相对稳定的redis去使用&#xff0c;可以看我下面这个文章 Linux&#xff1a;Redis7.2.4的源码包部署&#xff08;2&#xff09;-…

CSS 基础:设置背景的 5 个属性及简写 background 注意点

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。大专生&#xff0c;一枚程序媛&#xff0c;感谢关注。回复 “前端基础题”&#xff0c;可免费获得前端基础 100 题汇总&#xff0c;回复 “前端工具”&#xff0c;可获取 Web 开发工具合集 263篇…

力扣经典150题第十六题:接雨水

目录 力扣经典150题第十六题&#xff1a;接雨水1. 题目描述2. 问题分析3. 解题思路4. 代码实现5. 时间复杂度分析6. 应用和扩展7. 总结8. 参考资料 力扣经典150题第十六题&#xff1a;接雨水 1. 题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按…

给你的Qt软件加个授权

写在前面 环境&#xff1a; Win11 64位 VS2019 Qt5.15.2 核心思路&#xff1a; 将授权相关信息加密保存到License.txt中&#xff0c;软件运行时获取并解密授权信息&#xff0c;判断是否在限制期限内即可。 加解密部分使用第三方openssl库进行&#xff0c;因此需要手动在…

家庭网络防御系统搭建-虚拟机安装siem/securityonion网络连接问题汇总

由于我是在虚拟机中安装的security onion&#xff0c;在此过程中&#xff0c;遇到很多的网络访问不通的问题&#xff0c;通过该文章把网络连接问题做一下梳理。如果直接把securityonion 安装在物理机上&#xff0c;网络问题则会少很多。 NAT无法访问虚拟机 security onion虚拟…

多目标跟踪 | 基于anchor-free目标检测+ReID的实时一阶多类多目标跟踪算法实现

项目应用场景 面向多目标检测跟踪场景&#xff0c;项目采用 anchor-free 目标检测ReID 的实时一阶段多类多目标跟踪算法实现&#xff0c;效果嘎嘎好。 项目效果 项目细节 > 具体参见项目 README.md (1) 类别支持 1~10 object classes are what we need non-interest-…

SpringCloud学习(9)-GateWay网关-自定义拦截器

GateWay Filter详细配置说明 gateway Filter官网:Spring Cloud Gateway 作用&#xff1a; 请求鉴权异常处理记录接口调用时长统计 过滤器类别 全局默认过滤器&#xff1a;官网&#xff1a;Spring Cloud Gateway&#xff0c;出厂默认已有的&#xff0c;直接用&#xff0c;作…

Qt栅格布局的示例

QGridLayout * layoutnew QGridLayout;for(int i0;i<10;i){for(int j0;j<6;j){QLabel *labelnew QLabel(this);label->setText(QString("%1行%2列").arg(i).arg(j));layout->addWidget(label,i,j);}}ui->widget->setLayout(layout); 这样写程序会崩…

【vue】v-bind动态属性绑定

v-bind 简写:value <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><styl…

NC65 查询默认密码(sql)

NC65 使用sql查询设置的默认密码&#xff08;如果系统设置有&#xff09;&#xff1a; select * from sm_user_defaultpwd

工业通信原理——CRC校验

工业通信原理——CRC校验 前言 CRC&#xff08;循环冗余校验&#xff09;是一种常用的错误检测技术&#xff0c;广泛应用于通信协议中。它通过在数据中添加冗余的校验位来检测传输过程中的错误&#xff0c;具有高效、简单、可靠的特点。 CRC校验原理 CRC校验原理&#xff1…

深入理解图形处理器(GPU):加速人工智能和大数据计算的引擎

文章目录 1. 什么是GPU&#xff1f;2. GPU的工作原理3. GPU的应用领域4. GPU与CPU的比较参考与推荐 前言&#xff1a; 图形处理器&#xff08;GPU&#xff09;不再仅仅是用于图形渲染的硬件设备。如今&#xff0c;GPU已经成为加速人工智能、大数据计算和科学研究的关键引擎。本…

提高大型语言模型 (LLM) 性能的四种数据清理技术

原文地址&#xff1a;four-data-cleaning-techniques-to-improve-large-language-model-llm-performance 2024 年 4 月 2 日 检索增强生成&#xff08;RAG&#xff09;过程因其增强对大语言模型&#xff08;LLM&#xff09;的理解、为它们提供上下文并帮助防止幻觉的潜力而受…

故障诊断 | 基于LSTM的滚动轴承故障诊断

效果 概述 基于LSTM(长短期记忆网络)的滚动轴承故障诊断是一种利用深度学习技术来预测滚动轴承是否存在故障的方法。下面是一个基本的滚动轴承故障诊断的流程: 数据收集:首先,需要收集与滚动轴承相关的振动信号数据。这些数据可以通过传感器或振动监测系统获取。收集的数…