Linux和Windows配置公钥到服务器上【免密登录/传输文件】

news2024/11/15 13:37:01

文章目录

  • 1.Windows配置公钥到服务器上
    • 1.1.生成SSH密钥对(如果尚未生成):
    • 1.2.复制公钥到远程服务器:
    • 1.3.手动复制公钥到远程服务器:
    • 1.4.测试SSH连接:
  • 2.Linux配置公钥到服务器上
    • 2.1生成SSH密钥对(如果还没有的话)
    • 2.2.将公钥复制到远程服务器:
      • 1. 你可以使用 ssh-copy-id 命令将公钥复制到远程服务器。
      • 2. 手动复制公钥(如果没有 ssh-copy-id)
      • 3.测试连接:
      • 4.可能出现警告

1.Windows配置公钥到服务器上

如果你在本地使用的是 Windows ,要将本地生成的 SSH 公钥复制到远程服务器上,可以按照以下步骤进行操作:

1.1.生成SSH密钥对(如果尚未生成):

在 Windows 11 上,你可以使用 Git Bash 或者 Windows Terminal 来生成 SSH 密钥对。

  • 打开 Git Bash 或者 Windows Terminal。

  • 输入以下命令来生成 SSH 密钥对:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按照提示操作,选择密钥文件存储位置,默认情况下将会存储在 C:\Users\YourUsername\.ssh\id_rsaC:\Users\YourUsername\.ssh\id_rsa.pub

1.2.复制公钥到远程服务器:

在 Windows 上,你可以使用 ssh-copy-id 来简化复制公钥的过程,但通常它并不是默认安装的。因此,你可以手动复制公钥到远程服务器。

  • 打开你的 SSH 公钥文件 id_rsa.pub。你可以使用文本编辑器(如 Notepad++)打开该文件。

  • 复制公钥的内容。

1.3.手动复制公钥到远程服务器:

  • 登录到远程服务器。你可以使用 SSH 客户端(如 PuTTY)连接到服务器。

  • 创建 SSH 目录(如果不存在),并设置权限:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
  • 在远程服务器上打开 authorized_keys 文件,并将本地公钥的内容粘贴到文件的末尾。你可以使用 nano 或者 vim 等编辑器来进行编辑:
nano ~/.ssh/authorized_keys
vim ~/.ssh/authorized_keys

然后粘贴本地公钥的内容并保存文件。

  • 设置 authorized_keys 文件的权限:
chmod 600 ~/.ssh/authorized_keys

1.4.测试SSH连接:

关闭当前的 SSH 连接会话,然后尝试使用 SSH 密钥登录到远程服务器:

ssh username@server_ip

如果成功连接到服务器而不需要输入密码,则说明公钥复制成功。
通过这些步骤,你应该能够在 Windows上将本地生成的 SSH 公钥复制到远程服务器,并使用 SSH 密钥进行无密码登录。

2.Linux配置公钥到服务器上

2.1生成SSH密钥对(如果还没有的话)

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按提示操作,通常会将密钥对存储在 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub。

2.2.将公钥复制到远程服务器:

1. 你可以使用 ssh-copy-id 命令将公钥复制到远程服务器。

假设你的用户名是 username,服务器地址是 server_ip:

ssh-copy-id username@server_ip

系统会提示输入远程服务器的密码。输入密码后,ssh-copy-id 会自动将你的公钥追加到远程服务器上的 ~/.ssh/authorized_keys 文件中。

2. 手动复制公钥(如果没有 ssh-copy-id)

如果你的系统没有 ssh-copy-id 命令,你可以手动将公钥复制到远程服务器。

  1. 先查看你的公钥内容:复制显示出来的公钥内容。
cat ~/.ssh/id_rsa.pub
  1. 用SSH登录到远程服务器:输入密码登录。
ssh username@server_ip
  1. 在远程服务器上创建 .ssh 目录(如果不存在):
mkdir -p ~/.ssh
chmod 700 ~/.ssh
  1. 编辑或创建 authorized_keys 文件,并将公钥追加到文件中:
echo "your_public_key_content" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

3.测试连接:

退出远程服务器并尝试使用SSH密钥登录:

ssh username@server_ip

如果成功登录而不需要输入密码,则说明公钥复制成功。这些步骤完成后,你应该能够使用SSH密钥进行无密码登录到远程服务器。

4.可能出现警告

这个警告提示是因为远程主机的身份验证信息发生了变化,可能是由于以下原因之一:

  • 主机密钥已更改:远程服务器的 SSH 密钥可能已经更新或更改。
  • 中间人攻击:可能有恶意第三方在你与服务器之间进行监听。
    在这里插入图片描述
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:rorOjL7yjvcVHHyhMGHlXrI/ivIc6ufFCz5Ic2eEVbA.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:5
  remove with:
  ssh-keygen -f "/root/.ssh/known_hosts" -R "192.168.1.1"
Host key for 192.168.1.1 has changed and you have requested strict checking.
Host key verification failed.

解决方法:

  1. 更新 known_hosts 文件:

如果你信任服务器的新密钥,可以执行以下命令更新 known_hosts 文件。请确保替换 “192.168.1.1” 为实际的服务器IP地址。

ssh-keygen -f "/root/.ssh/known_hosts" -R "192.168.2.126"

然后再次尝试连接服务器,SSH 将会询问你是否接受新的密钥。

  1. 联系系统管理员:

如果你不确定这个警告的原因,或者认为可能存在安全问题,建议联系系统管理员进一步确认服务器的状态和密钥更改的原因。

  1. 取消严格主机密钥检查(不推荐):

如果你确认服务器的更改是合法的,可以在 SSH 连接时添加 -o StrictHostKeyChecking=no 参数来临时取消严格主机密钥检查。但这会增加潜在的安全风险,只适用于临时调试或特定情况下使用。

ssh -o StrictHostKeyChecking=no user@192.168.2.126

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

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

相关文章

开发个人Go-ChatGPT--6 OpenUI

开发个人Go-ChatGPT–6 OpenUI Open-webui Open WebUI 是一种可扩展、功能丰富且用户友好的自托管 WebUI,旨在完全离线运行。它支持各种 LLM 运行器,包括 Ollama 和 OpenAI 兼容的 API。 功能 由于总所周知的原由,OpenAI 的接口需要密钥才…

手撸俄罗斯方块(五)——游戏主题

手撸俄罗斯方块(五)——游戏主题 当确定游戏载体(如控制台)后,界面将呈现出来。但是游戏的背景色、方块的颜色、方框颜色都应该支持扩展。 当前游戏也是如此,引入了 Theme 的概念,支持主题的扩…

iOS UITableView自带滑动手势和父视图添加滑动手势冲突响应机制探索

场景 我们有时候会遇到这样的一个交互场景:我们有一个UITableView 放在一个弹窗中,这个弹窗可以通过滑动进行展示和消失(跟手滑动的方式),然后这个UITableView放在弹窗中,并且可以滚动,展示一些…

成都晨持绪:抖音电商带货需要交钱吗

在抖音这个充满创意与可能的平台上,电商带货成为了一种新兴而又时尚的职业。然而,伴随着无数的点击与转发,有一个问题始终萦绕在人们心头——抖音电商带货需要交钱吗? 如画卷展开,抖音平台以其独特的算法和庞大的用户基础构建了一…

spark shuffle写操作——UnsafeShuffleWriter

PackedRecordPointer 使用long类型packedRecordPointer存储数据。 数据结构为:[24 bit partition number][13 bit memory page number][27 bit offset in page] LongArray LongArray不同于java中long数组。LongArray可以使用堆内内存也可以使用堆外内存。 Memor…

构建高精度室内定位导航系统,从3DGIS到AI路径规划的全面解析

室内定位导航系统是一种利用多种技术实现室内精准定位和导航的智能系统,即便没有卫星信号,也能实现精准导航。维小帮室内定位导航系统是基于自研的地图引擎与先进定位技术,结合智能路径规划算法,解决了人们在大型复杂室内场所最后…

python怎么判断字符串以什么结尾

在python编辑器中新建一个data.py。 写上自己的注释。 然后新建一个变量testname。 利用endswith来判断字符串是不是以“ar”结尾。 将结果打印出来。 选择“run”->“run”。 运行该程序,如果是,就会返回true。

深度探讨:无法恢复主文件表的挑战与解决方案

在数字时代,数据的安全与恢复成为了不容忽视的重要议题。其中,主文件表(Master File Table, MFT)作为文件系统的核心组件,一旦受损或无法恢复,将直接导致数据访问的障碍,给用户带来巨大困扰。本…

Vue在一个页面调用另一个同级页面的方法

1、建个中转站 2、然后在两个页面都引入它,注意引入路径。 import Utils from src/utils/way 3、调用方的写法 //eg :Utils.$emit(demo, msg) 4、被调用方的写法 //eg :Utils.$on(demo, val>{})

Playwright使用教程【附爬取Leetcode题目URLs以及有道翻译小软件】

前言 playwright是微软设计的一款工具,可以爬取网页,还可以自动化测试自己编写的网站,而且不像bs4、request编写爬虫那么复杂,也不需要考虑反爬技术,只需要知道最基础的前端知识,就可以高效、便捷的编写爬…

【算法训练记录——Day43】

Day43——动态规划Ⅴ 1.kamacoder52_携带研究材料2.leetcode518_零钱兑换Ⅱ3.leetcode377_组合总和Ⅳ 完全背包 1.kamacoder52_携带研究材料 思路:这里每种材料可以选择无数次,因此属于完全背包, 首先回顾一下01背包的核心代码 for(int i 0…

vue3 + tsx 表格 Action 单独封装组件用法

前言 先上图看右侧列 action 的 UI 效果: 正常来说,如果一个表格的附带 action 操作,我们一般会放在最右侧的列里面实现,这个时候有些UI 框架支持在 SFC 模板里面定义额外的 solt,当然如果不支持,更通用的…

医疗器械网络安全 | 漏洞扫描、渗透测试没有发现问题,是否说明我的设备是安全的?

尽管漏洞扫描、模糊测试和渗透测试在评估系统安全性方面是非常重要和有效的工具,但即使这些测试没有发现任何问题,也不能完全保证您的医疗器械是绝对安全的。这是因为安全性的评估是一个多维度、复杂且持续的过程,涉及多个方面和因素。以下是…

7.10号小项目部分说明

总体说明 糖锅小助手 我这次主要对上次糖锅小助手界面添加了一个侧边栏(侧边输入框放置了三个按钮,可以跳转到其他ai聊天界面,还可以退出聊天界面回到登录界面)和一个日期输入框(日期输入框获取时间,根据时…

史上最齐全电动弃流装置(弃流控制柜/流量式雨水弃流装置)这里都有,井座式、304不锈钢材质

电动弃流装置组成部分有:PLC控制柜、雨量传感器/电磁流量计、弃流装置 进出水管可以定制不同接口,可以适用于连接波纹管、PVC管 电动弃流装置的工作原理如下: 首先,雨量传感器或电磁流量计实时监测降雨量或水流流量等相关数据&…

TCP 握手数据流

这张图详细描述了 TCP 握手过程中,从客户端发送 SYN 包到服务器最终建立连接的整个数据流转过程,包括网卡、内核、进程中的各个环节。下面对每个步骤进行详细解释: 客户端到服务器的初始连接请求 客户端发送 SYN 包: 客户端发起…

AI降痕工具:一键去除论文中的AI代写痕迹

在这个充满创意和创新的时代,AI已经渗透到我们生活的方方面面。然而,随着AI的飞速发展,AI的痕迹在论文创作中愈发明显。 这不禁让人思考,如何让论文回归纯粹,展现人类独有的思考和见解。“论文去AI痕迹”不仅是对学术…

vue3-openlayers WebGL加载地图(栅格切片、矢量切片)

本篇介绍一下使用vue3-openlayers WebGL加载地图(栅格切片、矢量切片) 1 需求 vue3-openlayers WebGL加载地图(栅格切片、矢量切片) 2 分析 栅格切片使用ol-webgl-tile-layer 矢量切片使用ol-vector-tile-layer(默…

海外视频媒体发布/发稿:如何在国外媒体以视频的形式宣发

1. 背景介绍 在如今数字化时代,每个国家都拥有着各自的视频媒体平台,而主流媒体也都纷纷加入了视频发布的行列。视频媒体的宣发形式主要包括油管Youtube等视频分享平台,以及图文配合的发布方式。通过在视频中夹带链接,媒体可以以…

服务器安全运维方案介绍

随着信息技术的飞速发展,服务器已成为企业信息化建设的核心基础设施。然而,服务器安全运维问题也日益凸显,如何保障服务器的稳定运行和数据安全,已成为企业面临的重要挑战。本文旨在介绍一套全面的服务器安全运维方案,…