【Linux】图文详解Xshell远程连接服务器:以Amazon EC2 VPS为例

news/2024/6/16 10:02:03/文章来源:https://blog.csdn.net/weixin_43982238/article/details/137153634

文章目录

    • 问题描述
    • 解决方案
    • Q&A

问题描述

本地cmd或powershell使用ssh -i “your.pem” user_name@ip_address是可以登录Amazon EC2云服务器的。

然而,当使用XShell以SSH加载PEM文件方式登录亚马逊EC2云服务器,一直出现输入密码的问题,如下截图所示:
在这里插入图片描述

解决方案

参考该博客基本可以解决问题:https://blog.csdn.net/fly_leopard/article/details/132540483

基本原理:创建一个新的 SSH 密钥对,并将公钥添加到服务器的授权列表中,以便使用对应的私钥进行 SSH 登录。

cd ~/.ssh/
# 生成一对 ECDSA 密钥。生成密钥时不设置密码就直接回车。
ssh-keygen -t ecdsa -f my_aws_key
# 将公钥添加到服务器的授权密钥列表中,以实现密钥对认证。
cat my_aws_key.pub >> authorized_keys
# 复制私钥的内容,然后在本地保存为一个私钥文件。注意,私钥必须严格保密,不要泄露给任何人!!!
cat my_aws_key

Xshell添加刚刚保存的私钥文件

在这里插入图片描述
再新建一个连接
在这里插入图片描述

在这里插入图片描述
如果创建密钥对时输入了密码,也需要在以下截图中输入密码。

在这里插入图片描述

done.

Q&A

1.怎么理解该命令:ssh-keygen -t ecdsa

ssh-keygen -t ecdsa是一个在Unix或类Unix系统(如Linux)中生成SSH(Secure Shell)密钥对的命令。SSH是一个用于远程登录到服务器,执行命令和管理系统的协议。

这个命令的各个部分的意义如下:

  • ssh-keygen:这是一个生成SSH密钥对的程序。SSH密钥对包括一个公钥和一个私钥,你可以将公钥放在远程服务器上,然后用你的私钥来登录。
  • t:这是一个选项,用来指定生成的密钥类型。
  • ecdsa:这是一个密钥类型,表示使用椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm)。这种算法比RSA和DSA更安全,同时生成的密钥长度更短,所以更高效。

所以,ssh-keygen -t ecdsa命令的作用就是生成一个使用椭圆曲线数字签名算法的SSH密钥对。

2.如何生成指定文件名的公私钥,以及对应的pem文件

ssh-keygen命令后面加上-f选项和文件名来指定生成的公私钥的文件名。

# 生成名为mykey的私钥和名为mykey.pub的公钥
ssh-keygen -t ecdsa -f mykey

再使用openssl命令将生成的私钥转换为PEM格式。

# 将mykey转换为mykey.pem
openssl ec -in mykey -out mykey.pem

请注意,这些命令可能需要你输入密码来保护你的私钥。如果不希望输入密码,可以在ssh-keygen命令后面加上-N ""选项。例如:

ssh-keygen -t ecdsa -f mykey -N ""

3.ssh-keygen默认使用什么算法?

ssh-keygen的默认算法可能会根据你的系统或SSH版本不同而不同。然而,从OpenSSH 7.0开始,默认算法是ed25519ed25519是一种使用Edwards曲线的公钥签名算法,它提供了更好的安全性和效率。

你可以通过运行ssh-keygen命令而不带任何参数,然后查看生成的公钥文件(默认为~/.ssh/id_rsa.pub~/.ssh/id_ed25519.pub),来确定你的系统使用的默认算法。公钥文件的开头将会指示使用的算法,例如ssh-rsassh-ed25519

如果你想使用特定的算法,你可以使用-t选项,如ssh-keygen -t rsassh-keygen -t ecdsa

4.使用ssh-rsa算法生成的公私钥为什么在远程连接时还需要输入密码?

当你使用SSH公钥认证方式连接到远程服务器时,通常需要输入两种类型的密码:

  1. SSH密钥密码:当你创建SSH密钥对时,有选项为私钥设置密码。这是为了保护私钥不被未授权使用。每次使用这个私钥时(例如,使用SSH连接到远程服务器),你都需要输入这个密码。如果你在创建密钥对时没有设置密码,那么在使用这个私钥时就不需要输入密码。
  2. 远程用户密码:即使你使用SSH密钥认证,远程服务器可能仍然需要你输入远程用户的密码。这是因为SSH公钥认证和用户密码认证是两个独立的步骤。即使SSH公钥认证成功,你仍然需要知道远程用户的密码才能登录。然而,许多服务器会配置为只使用SSH公钥认证,这样就不需要输入用户密码。

如果你每次连接都需要输入私钥密码,你可以考虑使用ssh-agent程序来记住你的私钥和密码,这样你就不需要每次都输入密码了。只需谨慎使用,因为任何能访问ssh-agent的人都可以使用你的SSH密钥。

5.服务器怎么配置只使用SSH公钥认证?

要配置服务器只接受SSH公钥认证,需要修改SSH守护进程的配置文件,通常这个文件是/etc/ssh/sshd_config

以下是一些可能需要修改或确认的设置:

  1. PubkeyAuthentication yes:这个选项启用公钥认证。默认情况下,这个选项通常是开启的。
  2. PasswordAuthentication no:这个选项禁止密码认证。将这个选项设置为no可以确保只有持有有效公钥的用户才能登录。
  3. ChallengeResponseAuthentication no:这个选项禁止质询-响应认证。将这个选项设置为no可以防止其他认证方法。
  4. PermitRootLogin prohibit-passwordPermitRootLogin without-password:这个选项防止root用户使用密码登录。这个设置增加了系统的安全性,因为攻击者不能尝试猜测root密码。

修改完sshd_config文件后,你需要重新启动SSH守护进程以使修改生效。在大多数系统上,你可以使用以下命令来完成:

sudo service ssh restart

sudo systemctl restart sshd

note: 这些设置将禁止所有形式的密码认证,包括通过SSH的交互式密码认证。因此,在关闭密码认证之前,应该确保公钥已经添加到服务器的~/.ssh/authorized_keys文件中,否则可能会被锁在系统外面。

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

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

相关文章

Fastjson配置消息转换器(时间格式问题)

问题: 我们可以看见,日期的格式有点问题。 由于ArticleListVO类的createTime成员变量是Date类型,默认是由java的Jackson来处理,使用 ISO-8601 规范来处理日期时间格式。ISO-8601 是一种国际标准的日期时间表示法,例如&…

是否应该升级到ChatGPT 4.0?深度对比ChatGPT 3.5与4.0的差异

如果只是想简单地体验AI的魅力,感受大模型的独特之处,或是玩一玩文字游戏,那么升级至ChatGPT 4.0可能并非必需。然而,若你期望将AI作为提升工作学习效率的得力助手,那么我强烈建议你升级到ChatGPT 4.0。 如果你不知道…

【网站项目】面向社区健康服务的医疗平台

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

从原理图到PCB全过程(嘉立创)1

1 将已经画好的原理图更新到PCB中(点击应用修改) 2 一开始PCB是杂乱的,需要回到原理图,框选各个模块,然后按住CtrlShiftX会自动在PCB显示这个部分,然后把各个部分分开 3 PCB画板需要有板框(嘉立创每个月都i…

Go语言学习Day6:数组与切片

名人说:莫愁千里路,自有到来风。 ——钱珝 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1. 数组① 什么是数组② 数组的声明③ 初始化数组的几种方式④ 遍历数组元素⑤ 数组为值类型⑥ 数…

A New Image Contrast Enhancement Algorithmusing Exposure Fusion Framework

Abstract 弱光图像由于能见度低,不利于人类观察和计算机视觉算法。为了解决这一问题,人们提出了许多图像增强技术,但现有的方法不可避免地会出现对比度增强不足和过度增强的问题。在本文中,我们提出了一种图像对比度增强算法来提…

瑞吉外卖实战学习--8、人员编辑更新

人员编辑更新 前言1、进入编辑窗口需要先获取用户信息2、通过上篇文章的update的方法来改变数据3、测试效果 前言 1、进入编辑窗口需要先获取用户信息 通过注解PathVariable 来获取路径需要携带的id然后赋值到路径上,再通过id查询用户信息 /*** 通过id查询用户信…

VUE3极速上手手册

文章目录 Vue3简介一、整体认识Vue3项目1、创建Vue3工程2、主要工程结构 二、数据双向绑定1、vue2语法的双向绑定2、OptionsAPI和CompositionAPI3、Vue3中的数据双向绑定3.1 ref定义基础类型响应式数据3.2 reactive定义对象型响应式数据3.3 ref对比reactive3.4 标签的ref属性3.…

Android 开发 Spinner setSelection 不起作用

问题 Android 开发 Spinner setSelection 不起作用 详细问题 笔者进行Android项目开发,根据上一个页面用户选择数据,显示当前页面Spinner选项,调用 Spinner setSelection 不起作用。 相关java代码 spinner.setAdapter(adapter); …

uniapp点击按钮连接wifi?

<view><button class"but" bindtap"connectToWifi">点击连接WiFi</button> </view> js: Page({// 页面数据data: {wifiConnected: false},onLoad: function () {this.checkWifiPermission();},// 检查 WiFi 权限checkWif…

不同设备使用同一个Git账号

想要在公司和家里的电脑上用同一个git账号来pull, push代码 1. 查看原设备的用户名和邮箱 第1种方法&#xff0c; 依次输入 git config user.name git config user.email第2种方法&#xff0c; 输入 cat ~/.gitconfig2. 配置新设备的用户名和邮箱 用户名和邮箱与原设备保持…

uniApp——零基础App的快速开发记录

公司需要使用移动端App来接受云平台的数据&#xff0c;记录一下学习过程。因水平有限&#xff0c;在学习的过程中不能完整、准确、全面的发现错误&#xff0c;如有错误&#xff0c;请评论指教&#xff0c;谢谢&#xff01; 需求分析 总体需求目标&#xff1a;开发一款android的…

文件传输升级!如何让你的MacBook与安卓设备快速共享大文件?

在现代工作环境中&#xff0c;跨设备、跨平台的文件传输已成为日常办公不可避免的一部分。尤其是MacBook和安卓手机之间的大文件传输&#xff0c;由于两者系统的差异&#xff0c;可能会遇到一些效率上的挑战。为了优化这一过程&#xff0c;以下是一些提升传输效率的新技巧。 1&…

搜索与图论——Prim算法求最小生成树

在最小生成树问题里&#xff0c;正边和负边都没问题 朴素版prim算法 时间复杂度O(n^2) 生成树&#xff1a;每一次选中的t点&#xff0c;它和集合的距离对应的那条边&#xff0c;就是生成树的一条边 算法流程和dijkstra算法非常相似 #include<iostream> #include<cs…

稀碎从零算法笔记Day33-LeetCode:生命游戏

今天是“耶稣受难人”&#xff0c;笔者给自己放了天假hhh 且慢&#xff0c;还是会写一点的。 根据 百度百科 &#xff0c; 生命游戏 &#xff0c;简称为 生命 &#xff0c;是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 题型&#xff1a;矩阵、原地实现、位运算 链…

Pytorch for training1——read data/image

blog torch.utils.data.Dataset create dataset with class torch.utils.data.Dataset automaticly import torch from torch.utils.data import Datasetclass MyDataset(Dataset):def __init__(self, data):self.data datadef __getitem__(self, index):# 根据索引获取样本…

紫光展锐P7885核心板详细参数介绍_5G安卓智能模块开发方案

紫光展锐P7885核心板采用了先进的6nm EUV制程工艺&#xff0c;集成了高性能的应用处理器和金融级安全解决方案&#xff0c;为用户带来了全新的性能体验。 P7885核心板搭载了先进的6nm制程工艺SoC P7885&#xff0c;其中包含四核A76和四核A55&#xff0c;主频可达2.7Ghz&#xf…

计算机网络面试问题(一)

1.在浏览器中输⼊URL并按下回⻋之后会发⽣什么 2.TCP三次握⼿的过程,为什么三次握手 TCP&#xff08;传输控制协议&#xff09;的三次握⼿是建⽴⽹络连接的过程&#xff0c;确保通信双⽅能够正确地进⾏数据传输。 第⼀次握⼿&#xff08;SYN&#xff09;&#xff1a; 客户端&am…

【THM】SQL Injection(SQL注入)-初级渗透测试

简介 SQL(结构化查询语言)注入,通常称为 SQLi,是对 Web 应用程序数据库服务器的攻击,导致执行恶意查询。当 Web 应用程序使用未经正确验证的用户输入与数据库进行通信时,攻击者有可能窃取、删除或更改私人数据和客户数据,并攻击 Web 应用程序身份验证方法以获取私有数据…

风险与收益

风险与收益 影响资产需求的主要因素财富总量预期收益率资产的流动性影响流动性的主要因素 风险 如何降低风险系统风险和非系统风险机会集合与有效集合资产组合理论 影响资产需求的主要因素 影响资产需求的主要因素包括&#xff1a;财富总量、预期收益率、资产的流动性和风险。…