Linux下SSH登录的三种方式

article/2025/10/14 10:02:22

SSH登录

SSH密钥登录:SSH默认采用密码登录,这种方法有很多缺点,简单的密码不安全,复杂的密码不容易记忆,每次手动输入也很麻烦。密钥登录是更好的解决方案。接下来介绍三种SSH的登录方式。

一:SSH口令登录

1 登录原理

SSH服务默认登录方式为口令登录,也是我们平时最常用的,原理如下:

1.客户端向服务端发起请求。

2.服务端收到请求将自己生成的公钥返回给客户端。

3.客户端用返回来的公钥加密自己的登录密码,发送给服务端。

4.服务端用自己的私钥解密,并验证密码是否正确,如果正确,允许登录。

可以看到整个流程存在四个步骤,下面给大家看看详细步骤。

2 使用教程

SSH的基本使用方法是:

ssh user@remote -p port

user是你在远程机器上的用户名,如果不指定的话默认为当前用户。

remote是远程机器的地址,可以是IP,域名,或者是后面会提到的别名。

port是SSH Server监听的端口,如果不指定的话就为默认值22(ssh的默认端口)

所以,SSH口令登录的前提就是知道目标的用户名,地址和SSH服务的端口,缺一不可。

1> 建立连接

举例:假如我正在使用kali机器做渗透测试,探测到目标的地址是。

开启了22端口,并且是SSH服务,还知道了目标机器上的用户名为user1,密码为123456,就

可以用SSH远程登良路目标机器,指令如下:

ssh user1@172.21.70.110 -p 22

注:这里的-p 22也可以不要,因为-p 22是默认选项,如果是其他端口的ssh服务就需要用-P来指定其他的端口了。

2>输入密码

输入上面的指令后页面如下,提示输入密码,这里密码的输入是隐藏输入(并不会显示),输

入密码后直接回车就好。

3 缺点总结

1>安全性

整个验证机制是没什么间题的,但是当遇到中间人攻击这种机制的安全性便会遣到破坏,什么是中间人攻击?

客户端向服务端发起请求攻击人截获请求,并向客户端返回自己的公钥。客户端用公钥加密登录密码并返回。攻击人用自己的私钥解密,获得服务器的登录密码。

2>繁项性

每次登录目标主机都要输入密码,短的密码不安全,长的密码又不好记,用户体验感较差。为了解决上面这几个问题,于是更新,更安全的方法随之而生,那就是SSH密钥登录,下面我们来看看。

二:SSH密钥登录

1 登录原理

很多人可能都听过密钥登录,知道它可以通过SSH在无需密码的情况下登录目标机器上的用户,那这个流程是怎样的呢?我们来详细看看:

1.客户端自己生成密钥对,事先将公钥上传存储到远程服务器上,私钥自己保管。

2.客户端发起登录请求。

3.服务器发一串随机字符串给客户端。

4.客户端用自己的私钥加密随机字符串,返回给服务端。

5.服务端用事先存储好的公钥解密,确认字符串是原来发出的字符串,便允许登录。

可以看到整个流程存在五个步骤,下面给大家看看详细步骤。

2 使用教程

1>生成密钥对

ssh-keygen -t rsa

#-t表示类型选项,这里采用rsa加密算法,然后根据提示一步步地按回车键即可(总共三个),页面如下

这里为什么连续按三个回车就可以了呢,我们来看看这三个回车对应了什么。

第一个回车:让我们输入一个目录路径来保存生成的密钥对,默认为/root/.ssh,回车代表直接默认,也可以自己输入一个路径来保存。

第二个回车:让我们设置私钥密码,如果设置了私钥密码,每次使用SSH进行操作都需要输入私钥密码。这里直接空格就是密码为空,这样每次使用就不需要输入密码。

第三个回车:这个就是单纯地再次输入私钥密码(就是一个确认密码),我们本来就是想设置密码,所以还是至二级回车即可。

像我上面那样的话密钥对就已经生成了,我们到自己设置的密钥对路径下看看,如果没有设置路径的话就是默认路径/root/.ssh,查询结果如下:

可以看到在/root/.ssh路径下生成了密钥对(即公钥和私钥),其中id_rsa文件就是私钥,id_rsa.pub文件就是公钥。

2>投递公钥到服务端

上面我们已经生成了密钥对,按照步骤需要将密钥对中的公钥保存到目标机器的/.ssh/authorized_key文件中,这里给大家介绍三种投递方式,但都是基于目标开启了ssh服务和知道目标账密的前提下;

注意:~表示代码主目录,也就是我们想用SSH登录的用户目录。

第一种:

这是最简单也是最常用的方式,需要ssh-copy-id,但是一般linux都自带这个。

ssh-copy-id user@remote -p port

user是你在远程机器上的用户名,如果不指定的话默认为当前用户。

remote是远程机器的地址,可以是IP,域名,或者是后面会提到的别名。

port是SSH Server监听的端口,如果不指定的话就为默认值2(ssh的默认端口)

实例:这里我直接把上面生成的密钥对中的公钥上传到目标机器的tom用户目录下;

可以看到在这里已经成功上传了,因为这是我们自己搭建的环境,我们也可以去目标机器看看/.ssh上有没有我们上传的公钥文件,也就是authorized_keys文件。

[root@localhost /]#cd/home/tom/.ssh
[root@localhost .ssh]#ls
authorized_keys
[root@localhost .ssh]#

我们再来登录便不会提示我们输入密码。

第二种:

在没有ssh-copy-id的情况下(比如在Windows上)。

ssh user@remote -p port `mkdir -p .ssh && cat >> .ssh/authorized_keys` < ~/.ssh/id_rsa.pub

这句话的意思是,在远端执行新建.ssh文件夹,并把本地的~/.ssh/id_rsa.pub(也就是公钥)复制到远端的.ssh/authorized_keys文件中。

第三种:

就是两台电脑均可控的情况下,手动把本地的~/.ssh/id_rsa.pub复制到目标机器~/.ssh/authorized_keys文件中。

三:SSH最简单登录方法(别名配置)

每次都输入ssh user@remote -p port,时间久了也会觉得很麻烦,特别是当user,remote和port都得输入,而且还不好记忆的时候。配置别名可以让我们进一步简化。

比如我想用ssh host1来替代上面这么一长串,那么在~/.ssh/config文件里面追加以下内容:

Host hostl
HostName remote
User user
Port port

举例:先在本地的~/.ssh里面创建一个名为config的文件,里面代码如下:

Host host1
HostName 172.21.70.110
User tom
Port 22

现在我们就可以尝试使用ssh host1来登录了,如下:

[root@localhost /]# cd/root/.ssh/
[root@localhost .ssh]# ls
id_r said_rsa.pub known_hosts
[root@localhost .ssh]# vi config
[root@localhost .ssh]# ssh host1
Last login:Tue0ct_1821:56:362022from172.21.70.110
[tom@localhost~]$

可以看到,也能成功登录,并且与刚才配置的密钥登录配合,不用输入密码,目标信息不用记。

注意:这个别名并不是必须配置公钥登录,这里如果没有配置密钥登录也可以使用别名,只是

登录时需要输入密码而已。


http://chatgpt.dhexx.cn/article/67xMZCxY.shtml

相关文章

CSS实现横或竖的分隔线分界线

在仿b站主页的时候&#xff0c;遇到分割线的问题。 横分割线一般使用标签hr 竖分割线其实可以用div的背景色来做 html代码 <div class"line"></div>css代码 .line{background:#E7E7E7;/*背景色为浅灰色*/width:0.6px;/*设置宽高*/height:45px;positi…

css3 做一个漂亮的分割线

原文出处&#xff1a; http://blog.csdn.net/majormayer/article/details/50996444 在网页中我们经常会用到分割线&#xff0c;但是原始的分割线并不太美观&#xff0c;我们可以用css3的skew属性做一个美观一点的分割线&#xff1a; 效果&#xff1a; 分辨率改变&#xff…

html页分割线最简单的实现方式

我们在写前台页的时候一般会碰到需要实现两个快中间加一条竖线&#xff0c;这样会使得页面分布更加清晰&#xff0c;下面就来说一说我的分割线的实现方式&#xff0c;设置一个div并给他设置宽高&#xff0c;然后设置其边框的颜色和宽度。 竖向分割线&#xff1a; <body>…

【html问题】在网页中添加垂直分割线

html中添加水平分割线的方法非常简单&#xff0c;就是使用<hr>标签&#xff0c;但是却没有简单的添加垂直分割线的方法&#xff0c;我在学习的这段时间&#xff0c;自己琢磨了一些添加垂直分割线的方法。 1.在文本中直接使用符号"|"。 优点&#xff1a;简单方…

css之分割线特效

温馨小提示&#xff0c;下面的盒子用的都是Grid布局&#xff0c;如果想要其他布局可以点击这里 CSS Grid Generator 盒子html <div class"parent1"><div class"div1">斜分割线</div><div class"div2">SETTINGS</di…

HTML--页面分割

页面分割排版&#xff0c;最终效果图示&#xff1a;&#xff08;手绘&#xff0c;比较简陋。&#xff09; 思路。一共四个html页面&#xff0c;一个做个父页面home.html&#xff0c;另外三个分别是top.html, left.html, right.html 然后把后面三个html页面拼在一起&#xff0…

HTML设置水平分割线

2019独角兽企业重金招聘Python工程师标准>>> 在Web中使用水平分割线可以分割不同的文字段落或者其它网页组件,轻松地修饰了段落排版,使之更美观。当然,水平分割线还可以更加明显地突出某一段重要的文字,使之更加醒目。 使用<hr>标签可以轻松地设置一条水平…

HTML链接(详细)与分割线(部分)

&#xff08;一&#xff09;说明模块 HTML链接用法------三种属性&#xff1a; * href属性&#xff1a;指定跳转目标&#xff0c;也就是指定需要打开的链接地址&#xff0c;是必须存在的&#xff0c;不可缺省的 * target属性&#xff1a;指定链接标签的弹出方式&…

Web前端基础—html

目录 1. html简介 1.1 常用标签介绍 1.1.1 input输入功能 1.1.2 html的列表 1.1.3 标题标签 1.1.4 分割线 1.1.5 视频播放 1.1.6 一个超简单的作业演示&#xff08;初识style&#xff09; 1. html简介 <!DOCTYPE html><html lang"en"><head&g…

html分割线

34755人阅读 各种分割线Html代码 一、基本线条&#xff1a; 1、<HR> 2、<HRaligncenter width300 color#987cb9SIZE1> align线条位置&#xff08;可选left、right、center&#xff09;&#xff1b;width线条长度&#xff1b;color颜色&#xff1b;size厚度 二、…

html几种美丽的分割线

普通 <HR> <HR aligncenter width300 color#987cb9 SIZE1> align 线条位置&#xff08;可选left、right、center&#xff09;&#xff1b;width 线条长度&#xff1b;color 颜色&#xff1b;size 厚度 特效&#xff08;效果并不是孤立的&#xff0c;可相互组合&am…

Python机器学习基础教程

Python机器学习教程 第一章&#xff1a;对于机器学习&#xff0c;我们选择了Python 第二章&#xff1a;了解SciPy、Pandas 持续更新 ... ...

[机器学习实战] 机器学习基础

1. 机器学习的主要任务&#xff1a;&#xff08;分类、回归&#xff09;有监督学习、&#xff08;聚类、密度估计&#xff09;无监督学习 2. 如何选择合适算法&#xff1a;使用机器学习的目的&#xff1b;需要分析的数据是什么&#xff1b;——分类、回归、聚类还是密度估计&am…

机器学习基本概念

本文首先介绍机器学习的基本流程&#xff0c;然后针对机器学习涉及的数据、算法和评估这三个方面用到的基础概念进行介绍。 1.机器学习流程 机器学习是一个数据流转、分析以及得到结果的过程&#xff0c;它的整个流程大致可以分为六个步骤&#xff0c;按照数据流自上而下的顺…

机器学习基础——损失函数与风险函数

机器学习的目标是从模型的假设空间中选取最优的模型&#xff0c;其具体的策略有经验风险最小化和结构风险最小化。下面简单介绍损失函数和风险函数的相关概念。参考自李航《统计学习方法》。 损失函数 损失函数(loss function)用来预测模型单次预测的好坏&#xff0c;即模型的…

机器学习基础知识之概率论基础详解

机器学习基础知识之概率论基础详解 文章目录 机器学习基础知识之概率论基础详解引言一、随机事件以及其运算1、样本空间的概念2、随机事件3、随机变量4、事件之间的关系4.1包含关系4.2相等关系4.3互不相容 5、事件间的运算5.1并5.2交5.3差5.4对立事件5.5运算性质 6、事件域 二、…

【机器学习基础】机器学习模型与算法最全分类汇总!

机器学习 Author&#xff1a;louwill Machine Learning Lab 本文总共涉及了26种机器学习模型与算法&#xff0c;几乎涵盖了全部主流的机器学习算法。包括线性回归、逻辑回归、Lasso回归、Ridge回归、线性判别分析、近邻、决策树、感知机、神经网络、支持向量机、AdaBoost、GBDT…

python基础教程免费下载-《Python机器学习基础教程》高清版免费PDF下载

Python机器学习基础教程-[德] 安德里亚斯穆勒(Andreas C.Mller)[美]莎拉吉多(Sarah Guido) 著,张亮(hysic) 译 下载地址1:网盘下载 下载地址2:网盘下载 内容简介 本书是机器学习入门书,以Python语言介绍。主要内容包括:机器学习的基本概念及其应用;实践中常用的…

机器学习开发框架

目录 目录 1.什么是机器学习开发框架 2.机器学习框架和深度学习框架的关系 3.常见深度学习框架 1.什么是机器学习开发框架 机器学习开发框架本质上是一种编程库或工具&#xff0c;目的是能够让开发人员更容易、更快速地构建机器学习模型。 机器学习开发框架封装了大量的可…

《Python机器学习基础教程》学习记录(一)

开篇 为了提升自己&#xff0c;准备学习《Python机器学习基础教程》作者: [德]安德里亚斯穆勒 / [美]莎拉吉多&#xff0c;译者: 张亮 &#xff1b;写此博客&#xff0c;用作记录书中的代码&#xff0c;学习心得等。 第一章 1.4.4 matplotlib matplotlib 是Python 主要的科学…