ToB企服应用市场:ToB评测及商务社交产业平台
标题:
虚拟机Ubuntu向主机Windows建立SSH毗连,跨系统传输
[打印本页]
作者:
熊熊出没
时间:
2024-8-13 14:40
标题:
虚拟机Ubuntu向主机Windows建立SSH毗连,跨系统传输
目录
关于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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4