【Linux】ubuntu设置ssh密钥登录详细教程,附Mobaxterm和pycharm ssh python解释器配置教程

news2024/11/28 18:45:48

0、写在前面

我们通常使用SSH 客户端来远程使用 Linux 服务器。但是,一般的密码方式登录,容易有密码被暴力破解的问题。所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 root 账户登录。但是即使是将端口设置为22之外的端口也容易泄露。为了保证服务器安全,此时希望使用密钥方式登录。而且使用秘钥登录能够避免每次登录时反复输入账户密码。

密码登录

  • 优势
    • 配置简单:只需要设个密码就行
    • 登录简单:在任意设备上只需要输入账号密码就能登录目标服务器
  • 劣势
    • 麻烦:每次登录都需要输入账号密码

密钥登录

  • 优势
    • 快捷:避免每次登录时反复输入账户密码
    • 安全:密钥文件相当于是超长超复杂的密码,暴力破解基本没戏,只有本地有密钥文件才能登录服务器
  • 劣势
    • 要从一台设备登录某台服务器,使用前必须先将密钥文件下载到该设备上

总结一下,根据辩证法的原理,优势和劣势都是相对的,没有十全十美的办法。

1、SSH密钥登录原理

1.1 密钥登录的原理是:

  1. 利用密钥生成器制作一对密钥——公钥和私钥。
  2. 将公钥添加到服务器的某个账户上,
  3. 将私钥下载到客户端,客户端利用私钥即可完成认证并登录。

1.2 非对称加密算法:

在这里插入图片描述

  • RSA加密算法是经典的非对称加密算法,其基本流程如下:

    • 用密钥生成器构建一对密钥——公钥和私钥。然后将公钥安装到服务器,私钥发送到客户端。
    • 服务器向客户端发送数据的时候用公钥进行加密,客户端收到数据后用私钥解密。
    • 客户端向服务器发送数据的时候用私钥进行加密,服务器收到数据后用公钥解密。

缺点在于:如果公钥在传输中泄漏,则黑客可以用公钥破解客户端发送的数据。

1.3 ssh密钥认证登录原理

在这里插入图片描述

参考:
SSH公钥登录(私钥认证)原理
什么叫SSH?原理详解,看这一篇就够了!

2、配置SSH密钥登录

2.1 生成密钥对

密钥对的生成在本地电脑或者服务器都可以。

  • 如果,你想不同服务器共用一个密钥对,那建议在本地电脑生成,之后将公钥分别上传到服务器并安装就行。
  • 如果,你想不同服务器使用不同的密钥对,那建议在服务器端分别生成,再将私钥下载到客户端就行。

这边以服务器端生成密钥对举例。

首先登录到服务器后,在命令行输入命令,然后一路回车就行。

 ssh-keygen

用来生成秘钥,如图:
在这里插入图片描述
第一步是确认保存秘钥的位置,一般使用默认的位置即可。
第二步是为秘钥设置一个密码, 第三步是确认密码。如果输入的话,即使被人有你的秘钥没有你的密码也是无法登录你的服务器的,这样会比较保险但也比较繁琐,直接回车表示不设置密码。

后面的信息是给出秘钥、公钥保存的位置和秘钥信息。 最终我们可以看到在 /home/username目录中生成了一个隐藏目录 .ssh。
里面包含两个密钥文件,id_rsa 为私钥,id_rsa.pub 为公钥。

2.2 在服务器上安装公钥

在命令行输入一下命令安装公钥:

cd ~/.ssh
cat id_rsa.pub >> authorized_keys

如此便完成了公钥的安装。 此外,为了确保连接成功,输入如下指令以保证以下文件权限正确:

chmod 600 authorized_keys 
chmod 700 ~/.ssh

命令意思:
对于安装好的公钥authorized_keys, 让当前用户具有读写权限,其余用户没有任何权限,以防被人修改,当前用户就登录不了了。
.ssh目录,让当前用户具有可读可写可执行权限,其余用户没有任何权限,确保ssh正常工作。

2.3 配置SSH,打开秘钥登录功能、关闭密码登录功能(管理员做)

  1. 使用vim 编辑 /etc/ssh/sshd_config 文件
sudo vim /etc/ssh/sshd_config
  1. 然后按 i进入编辑模式,在空白位置新增输入:
RSAAuthentication yes
PubkeyAuthentication yes

此处便已经设置好了使用秘钥登录了,但是如果需要禁用密码登录可以进行如下设置:

PasswordAuthentication no

这一步最好是在能够用秘钥登录的前提下设置,不然秘钥又没法登录,又不能用密码登录,就麻烦了。

编辑完文本后按 ESC,输入:wq 保存文件并退出。

  1. 最后,输入如下指令重启 SSH 服务:
service sshd restart

2.4 将私钥下载到客户端,并登录

将.ssh文件夹中的私钥id_rsa下载到客户端,比如你的电脑,放在一个你不会删除的文件夹内,比如新建了一个 ssh 文件夹保存秘钥,为了便于管理 你也可以修改秘钥的文件名。

2.4.1 在MobaXterm中使用秘钥登录的操作

主要就是4、5步,勾选Use private key,然后点击文件图标选择刚才下载好的私钥文件,最后点OK就能成功登录了

  • 在这里插入图片描述

2.4.2 在pycharm专业版配置ssh远程解释器

设置——项目——Python解释器——添加解释器——SSH
在这里插入图片描述
新建——输入主机名(IP)、端口、用户名

在这里插入图片描述

勾选密钥对,然后再然后点击文件图标选择刚才下载好的私钥文件,(密码短语空着,保存密码短语勾不勾无所谓),再点下一步
在这里插入图片描述

密码字段不用输入,直接跳过,点下一步
在这里插入图片描述
出现如下界面就表示登录成功了
在这里插入图片描述
之后再去选择服务器目录下的python解释器就好了
在这里插入图片描述

参考链接

Ubuntu 设置 SSH 通过密钥登录

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

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

相关文章

复杂数据集,召回、精度等突破方法记录【以电科院过检识别模型为参考】

目录 一、数据分析与数据集构建 二、所有相关的脚本 三、模型效果 一、数据分析与数据集构建 由于电科院数据集有17w-18w张,标签错误的非常多,且漏标非常多,但是所有有效时间只有半个月左右,显卡是M60,训练速度特别…

linux防火墙之iptables

一、iptables概述 Linux 系统的防火墙 :IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables组成。 主要工作在网络层,针对IP数据包。体现在对包内的IP地址、端口、协议等信息的处理上。 netfilter: 属于“内核态”&…

Java基础重温巩固

方法 方法与方法之间是平级关系,不能嵌套return表示结束当前方法 基本数据类型和引用数据类型 基本数据类型:数据存储在自己的空间中 引用数据类型:数据存储在其他空间中,自己空间存储的是地址值 值传递 传递基本数据类型时&…

详解Windows系统安装TensorRT

目录 下载TensorRT安装TensorRT测试 TensorRT 是 NVIDIA 推出的一款高性能神经网络部署引擎.Windows系统下TensorRT目前不能简单直接通过pip指令自动下载安装, 安装之前还需要提前安装好 CUDA 和 CUDNN. CUDA和CUDNN安装可参考: 详解 Windows系统下安装 CUDA 与 CUDNN. &…

ES6之Module:export、import

文章目录 前言一、export命令1.export2.export default(默认暴露) 二、import命令1.通用导入方式2.解析赋值导入方式 三、结果总结 前言 ES6之前,JavaScript语言一直没有模块(Module)体系,无法将一个大型程…

《计算机网络——自顶向下方法》精炼——3.5.1-3.5.4

人生像攀登一座山,而找寻出路,却是一种学习的过程,我们应当在这过程中,学习稳定、冷静,学习如何从慌乱中找到生机。——席慕蓉 文章目录 TCPTCP协议概述报文段结构序号、确认号 超时问题计算RTT计算重传时间 可靠数据传输 TCP TCP协议概述 TCP是面向连接的协议,在…

nest笔记十一:一个完整的nestjs示例工程(nestjs_template)

概述 链接:nestjs_template 相关文章列表 nestjs系列笔记 示例工程说明 这个工程是我使用nestjs多个项目后,总结出来的模板。这是一个完整的工程,使用了yaml做为配置,使用了log4js和redis和typeorm,sawgger&#…

Less和sass安装及使用

CSS预处理器 由来 CSS本身不是一种编程语言。你可以用它开发网页样式,但是没法用它编程。换句话说,CSS基本上是设计师的工具,不是程序员的工具。它并不像其它程序语言,比如说JavaScript等,有自己的变量、常量、条件语…

手把手教你验证upd与tcp“端口”开发策略

系列文章目录 文章目录 系列文章目录前言一、问题?二、验证网络策略步骤三、增强验证网络策略总结 前言 这篇文章,本意是让大家了解除了常用的telnet之外,在运维过程中,如果在服务器中未发现相关命令还可以借用像ssh、wget 等命令…

震惊!我的电脑居然中病毒了,快来看看我是如何解决的

打开电脑就自动跳转到http://www.exinariuminix.info/ 问题背景 今天刚打开电脑,然后电脑莫名奇妙就自动跳转到http://www.exinariuminix.info/网页: 联网后加载,它就自动重定向到一个莫名其妙的网站: 问题原因 出于好奇&#…

大数据Doris(二十四):Doris数据Insert Into导入方式介绍

文章目录 Doris数据Insert Into导入方式介绍 一、语法及参数 二、案例 三、注意事项 1、关于插入数据量 2、关于insert操作返回结果 3、关于导入任务超时 4、关于Session变量 5、关于数据导入错误 Doris数据Insert Into导入方式介绍 Doris 提供多种数据导入方案&…

SpringMVC执行原理

目录结构 pom.xml依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><!-- https://mvnrepository.co…

【Java校招面试】实战面经(五)

目录 前言一、讲讲short数据类型&#xff0c;short s1 1; s1 s11;对不对&#xff1f;二、使用final关键字的好处三、如果String中重写equals不重写hashCode会出现什么问题&#xff1f;四、ConcurrentHashMap的get方法是不加锁的&#xff0c;如何保证线程安全&#xff1f;五、…

缓存存在的问题

文章目录 缓存问题缓存穿透引入解决方案 缓存雪崩缓存击穿 缓存问题 使用缓存时常见的问题主要分为三个&#xff1a;缓存穿透 、缓存雪崩、缓存击穿。 下面对其进行一一学习 缓存穿透 引入 定义&#xff1a;缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#…

20230521给coolpi4b开发板刷Android12和串口的使用

20230521给coolpi4b开发板刷Android12和串口的使用 2023/5/21 9:31 所需要的配件&#xff1a; 1、2.0mm转2.54mm的杜邦线母头2条&#xff08;2位一起的一条&#xff09; 2、串口板&#xff1a;CH340&#xff08;WIN7下使用&#xff09; 3、USB的公头-公头线 首先&#xff0c;欢…

微星MSI GE66 10SF-416RU电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件配置 硬件型号驱动情况 主板Intel HM470 处理器Intel Core i7-10875H 2.30GHz up to 5.10GHz已驱动 内存Kingston Fury Impact DDR4 2x16Gb 3200mhz已驱动 硬盘NT…

Redis介绍及Linux单机安装

1.Redis介绍 1.1.什么是Redis Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 Redis是完全开源的&#…

OpenCV人脸识别QT上位机(含源码)

OpenCV Releases&#xff1a;4.6.0 开发平台&#xff1a;QT 6.4.0 编译环境&#xff1a;MSVC 2019 64bit 主要功能&#xff1a;1、预处理图片 2、生成CSV文件 3、生成识别器文件等功能。主要用于学习opencv的整个流程和实现一些简单的功能&#xff0c;比如识别指定的人脸并显…

安卓与串口通信-实践篇

前言 在上一篇文章中我们讲解了关于串口的基础知识&#xff0c;没有看过的同学推荐先看一下&#xff0c;否则你可能会不太理解这篇文章所述的某些内容。 这篇文章我们将讲解安卓端的串口通信实践&#xff0c;即如何使用串口通信实现安卓设备与其他设备例如PLC主板之间数据交互…

【计算机网络复习】第五章 数据链路层 1

数据链路层的作用 两台主机&#xff08;端到端&#xff09;之间的通信是依靠相邻的主机/路由器之间的逐步数据传送来实现 数据链路层实现相邻主机/路由器间的可靠的数据传输 网络层&#xff1a;主机-主机通信 数据链路层&#xff1a;点到点通信 数据链路层的主要功能 u 链路…