论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
运维.售后
›
运维.售后
›
虚拟机Ubuntu向主机Windows建立SSH毗连,跨系统传输 ...
虚拟机Ubuntu向主机Windows建立SSH毗连,跨系统传输
熊熊出没
金牌会员
|
2024-8-13 14:40:24
|
显示全部楼层
|
阅读模式
楼主
主题
688
|
帖子
688
|
积分
2064
目录
关于SSH
SSH的诞生
SSH起源与发展
SSH常用认证方法
SSH设置
Ubuntu下
Ubuntu安装SSH服务端
在Windows上设置SSH
在Ubuntu中建立SSH毗连
(一)暗码认证
(二)密钥认证
1. 在虚拟机上生成SSH密钥对
工具——terminus
跨系统传输文件下令
题目
忘记暗码
SSH大概出现的题目
1. 简单先容了SSH的来源与发展。
2. 在SSH设置中,重要展示了暗码认证。如果设置出现不可预估的错误大概想要方便快捷,可以考虑使用SSH工具——termius。
3. 先容了两个跨系统传输文件的下令。
关于SSH
SSH的诞生
在SSH诞生之前,网络主机之间的通信广泛采用明文通信方式,任何位于传输路径上的设备都可以读取这些数据。
尤其在远程登录和网络服务领域。远程登录和网络服务通常使用如rlogin、TELNET、FTP和rsh等协议。这些协议在传输数据时并不加密,特殊是服务器登录过程,用户输入的暗码需要在网络上明文传输到服务器,使得数据容易受到嗅探和窜改等攻击。
芬兰赫尔辛基工业大学的研究员 Tatu Ylönen 地点的大学网络一直发生暗码嗅探攻击,因此他想为服务器计划一个更安全的登录方式。1995年,他计划了 SSH 协议的第一个版本(现称为 SSH 1),同时写出了第一个实现(称为 SSH1)。
(该图片来源于网上)
SSH (Secure Shell)协议是一种安全远程登录服务器的协议。它通过密钥交换机制(如Diffie-Hellman密钥交换)计算一个共享密钥,并基于这个密钥建立一个与服务器通信的安全通道。用户通过安全通道使用一种可担当的身份验证方法进行身份验证。常用的认证方法包括“暗码”和“公钥”。顾名思义,如果是“暗码”方式,要求用户提供自己的暗码即可进行认证。而“publickey”验证则依靠于用户持有的私钥和服务器上的公钥进行身份验证。公钥验证通常被以为更安全,由于它不依靠于在网络上传输暗码,减少了暗码被截获的风险。
SSH起源与发展
当时, SSH 1的发布迅速得到了广泛的认可和使用。由于其加密和身份验证功能,SSH 1能够更换那些不安全的远程登录和网络服务协议,如rlogin、TELNET、FTP和rsh等。到1995年底,SSH的用户已经遍布50个国家,到达了20,000个。然而,随着SSH的遍及和使用,人们开始发现SSH 1协议中存在一些安全漏洞。这些漏洞促进了SSH 2的诞生。
为了修复SSH 1中的安全漏洞并提供更强盛的功能,Tatu Ylönen在1996年提出了SSH 2协议(或称为SSH 2.0)。SSH 2与SSH 1并不兼容,但在安全性、功能性和性能方面都进行了改进。SSH 2协议在1997年进行了标准化,并在1998年推出了软件实现SSH 2。此后,SSH重要有两个版本——SSH 1和SSH 2。不外,那时官方的SSH 2软件是一个专有软件,需要付费使用,并且没有提供SSH 1的一些功能。限定了SSH 2的遍及和使用。
1999年,OpenBSD 的开辟人员决定写一个 SSH 2 协议的开源实现,这就是 OpenSSH 项目。该项目最初是基于 SSH 1.2.12 版本,那是当时 SSH1 最后一个开源版本。但是,OpenSSH 很快就完全摆脱了原始的官方代码,在许多开辟者的加入下,按照自己的路线发展。OpenSSH 随 OpenBSD 2.6 版本一起提供,以后又移植到其他操纵系统,成为最流行的 SSH 实现。
目前,Linux 的全部发行版几乎都自带 OpenSSH。
到2024年6月29,根据互联网扫描服务shodan报告,在网络空间中发现了超3000万个基于SSH的活泼服务。(可以到shodan官网康康)
SSH常用认证方法
SSH(Secure Shell)提供了几种差别的认证方式,其中最常见的是暗码认证和密钥认证。
暗码认证
:
原理:用户在毗连时输入用户名和暗码,暗码会被传输到远程服务器进行验证。如果暗码正确,用户将被授权访问远程服务器。
优点:暗码认证是最简单直接的认证方式,用户只需记着暗码即可。
缺点:暗码在网络中传输,大概面临被嗅探的风险,且容易受到中间人攻击或暴力破解攻击,尤其是针对弱暗码。
密钥认证
:
原理:用户生成一对密钥,包括公钥和私钥。公钥存储在服务器上的授权文件中,而私钥则生存在用户的当地计算机上。当用户尝试毗连时,服务器会要求提供与公钥匹配的私钥进行验证。
优点:相比暗码认证,密钥认证更加安全,由于私钥不会在网络上传输,降低了安全风险。
缺点:用户需要生成密钥对,并在首次毗连时将公钥上传到服务器,这大概需要额外的设置步骤。
除了上述两种重要认证方式外,SSH还支持其他认证机制,如使用单一登录(SSO)系统、基于硬件的令牌或多因素认证等,这些方式通常用于增强安全性,但在一样平常使用中不如暗码认证和密钥认证广泛。
SSH设置
Ubuntu下
默认情况下,ssh服务不开启(用“sudo systemctl status sshd”查看ssh服务)
查看一下有没有装ssh(当然,目前,Linux 的全部发行版几乎都自带 OpenSSH)
dpkg -l | grep ssh
复制代码
如果没有就用apt安装
sudo apt update sudo apt install openssh-server
复制代码
我这里显示有装客户端(client--客户端)
SSH 客户端用于“发送”毗连请求到 SSH 服务器,而 SSH 服务器则“吸收”这些请求,并允许用户通过加密的 SSH 会话远程访问计算机。
Ubuntu安装SSH服务端
1、
执行安装指令
sudo apt update sudo apt install openssh-server
复制代码
中途提示:
您希望继续执行吗? [Y/n] y
输入y即可
2、
查抄ssh服务器状态:
sudo systemctl status sshd
复制代码
这会就开启服务了——active(running)就没毛病
如果一切正常,应该会看到服务正在运行的消息(如上)。如果服务没有自动启动,可以使用以下下令来启动服务:
sudo systemctl start sshd
复制代码
在Windows上设置SSH
1、在Windows中安装openssh
在windows设置中
点击应用
有个“可选功能”
搜索“openssh服务器”(选择客户端还是服务器看个人需求)
我这里在Ubuntu中的是Client,那在Windows上装server的
2、确保openssh服务已开启
可以win+R打开运行框,输入:services.msc
services.msc
找到opensssh,右键点击属性
将启动范例修改成自动
修改后成自动开启服务
改成自动服务后,但是要进行一次手动开启,之后电脑重启后才会自动开启该服务
3、允许openssh通过防火墙:
搜索“Windows安全中心”,在安全中心中点击“允许应用通过防火墙
点击“更改设置”
修改
openssh服务器的设置文件通常位于:C:\ProgramData\ssh\sshd_config,视具体情况决定要不要修改。
在Ubuntu中建立SSH毗连
(一)暗码认证
首先需要知道下令格式。
ssh user_name@your_ip
1、user_name 你要毗连的用户名
2、 your_ip 你要毗连的设备的ip地点
好比这里我要毗连的是我的Windows主机,那我就需要知道Windows的用户名(user_name)和ip(your_ip)
可以在Windows的cmd中查看用户名:
echo %USERNAME%
复制代码
查看ip
ipconfig
复制代码
就是IPv4后面跟着的ip地点(我这里没有透露我的ip)
好了,可以正式开始建立SSH毗连了。
以是,我们可以在Ubuntu的终端中输入以下格式下令(换成自己的用户名和ip):
ssh user_name@your_ip
这个提示是在SSH协议为了掩护我们的毗连,会在你第一次毗连到某个服务器时,显示该服务器的公钥指纹,并要求你确认是否继续毗连。
以是,我们可以输入"yes"
然后提示说输入你的(暗码(Ubuntu中输入命名不显示点大概星号是正常的)
这个暗码似乎就是你进入Windows系统的暗码,如果忘记了,下面有更改教程
如下,成功!
输入exit;可以退出,回到当地:
(二)密钥认证
1. 在虚拟机
上生成SSH密钥对
如果你还没有SSH密钥对,你需要在虚拟机上生成一个。使用ssh-keygen下令来生成一串位数为4096的密钥:
ssh-keygen -t rsa -b 4096
复制代码
输入这个下令后,一般连续输入enter就行
这会生成一个公钥(id_rsa.pub)和一个私钥(id_rsa)。私钥应该保持私密,不与任何人共享,而公钥则应该被复制到你想从中进行SSH毗连的其他机器上。
2. 将公钥复制到主机上
在虚拟机上的复制公钥的内容。
在虚拟机的主目录下,一般是不显示设置文件的:
按下Ctrl + H,可以显示隐藏的文件:
.ssh下的id_rsa.pub是公钥的地方
在Windows上,.ssh下的authorized_keys文件(这个文件如果不存在,就创建一个)。这个文件通常位于C:\Users\username\.ssh\authorized_keys
一串公钥占一行,不能有多余的换行符
之后在Ubuntu中再次尝试ssh毗连。
在进行毗连的时候,大概会由于设置文件的题目出现错误,我的建议是,使用工具,节省生命。
工具——termius
我的建议是,使用一款优秀的工具,就是节省生命。
先容一款SSH工具——termius。
termius下载(Linux版)
https://www.termius.com/free-ssh-client-for-linux
下载后,在termius压缩包界面:
使用以下下令安装:
sudo dpkg -i Termius.deb
如上,安装完毕。
点击左下角的系统图标可以找到:
找到termius后,打开
1. 在Hosts栏中,点击NEW HOST
2. 编辑,输入IP和暗码
3. 根据提示输入就行
4. 成功进入了
跨系统传输文件下令
使用scp下令
下令格式:
scp %当地路径 username@remote_host:%远程目标路径
其中:
username是你的远程用户名
remote_host是你的远程用户的ip
例如:
如果想将远程电脑上的文件下载到当地,可以使用
scp username@remote_host:%远程路径 %当地目标路径
2. 使用SFTP
不外,
Windows下令提示符(CMD)或PowerShell自己不直接支持SFTP的get和put下令
sftp username@remote_host
其中:
username是你的远程用户名
remote_host是你的远程用户的ip
建立sftp请求后,就可以直接
使用put方法将文件传输到远程主机上
:
语法:
put %当地路径 %远程目标路径
例如:
从远程到当地使用get方法:
get %远程路径 %当地目标路径
题目
忘记暗码
如果忘记了,更改暗码:
1、Win+R打开运行框
2、双击进入用户
3、选中你要修改的用户右键,我这里是右键“Anastasia”,点击设置暗码
SSH大概出现的题目
一般出现题目:
SSH
服务未运行
:远程主机上的SSH服务大概没有运行或设置不正确。
SSH
设置题目
:远程主机上的SSH设置大概限定了您的毗连,大概使用了差别的端口、用户认证方式等。
防火墙
/
安全组题目
:远程主机大概有防火墙或安全组规则阻止您的毗连。
SSH
密钥题目
:如果远程主机设置了公钥认证,并且您没有提供正确的公钥,那么毗连大概会被拒绝。
服务器资源题目
:远程服务器大概由于资源不敷(如内存、CPU)或其他系统题目而无法处理毗连。
SSH
版本不兼容
:您的SSH客户端和远程主机的SSH服务器之间的版本大概存在不兼容题目。
网络题目
:您的网络毗连大概不稳定,大概存在网络中断。 一般重要考虑
服务是否运行、防火墙、密钥和版本
的题目
好比:
我这里的题目是:忘记启动服务了,即便改成自动也要先启动服务,下次电脑开机后会自动启动服务
参考资料:
DNS中SSH主机密钥指纹验证记录的大规模分析
安全掩护(SSH):基于超文本传输协议(HTTP)的公钥身份验证
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
熊熊出没
金牌会员
这个人很懒什么都没写!
楼主热帖
TortoiseGit间接处理linux目录下的仓库 ...
django小项目 ----- 创建错题集 ...
在字节跳动干软件测试5年,4月无情被辞 ...
Java如何调用HttpURLConnection类模拟 ...
[Golang] GO 语言工作环境的基本概念 ...
SeaTunnel 发布成为 Apache 顶级项目后 ...
Java 知识 - 接口代理
Spring(十):注解实现自动装配 ...
java 基础——数组
3. Caller 服务调用 - dapr
标签云
挺好的
服务器
快速回复
返回顶部
返回列表