SSH登录到远程主机@openSSH

2024-04-11 18:36
文章标签 登录 主机 远程 ssh openssh

本文主要是介绍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博客

这篇关于SSH登录到远程主机@openSSH的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/894857

相关文章

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp