SSH文件传输

embedded/2024/10/20 17:15:06/

一、设置SSH密钥对,实现记住密码

要避免每次使用scpssh时都输入密码,你可以设置SSH密钥对(一对公钥和私钥),并将公钥添加到远程服务器上。这样,你的系统可以通过密钥自动验证身份,而无需手动输入密码。以下是设置SSH密钥对并配置免密码登录的步骤:

1. 在本地计算机上生成SSH密钥对

如果你还没有SSH密钥对,可以在你的本地机器上生成一个。在Git Bash中运行以下命令:

ssh-keygen -t rsa -b 4096
  • -t rsa: 指定密钥类型为RSA。
  • -b 4096: 指定密钥的位数,4096位提供较强的安全性。

按提示操作,你可以设置一个密钥的密码(可选,为密钥增加一层保护),并确认密钥存储的位置(通常是~/.ssh/id_rsa)。

注意提示会是要求你指定存储SSH密钥对的位置和文件名。如果你接受默认的位置和文件名(/c/Users/和谐号/.ssh/id_rsa),你可以直接按回车键继续。这将会在默认路径下创建私钥(id_rsa)和公钥(id_rsa.pub)文件。

如果你想要指定不同的路径或文件名,可以在这里输入你选择的完整路径和文件名。如果不确定,通常推荐使用默认设置。

接下来,系统可能会询问你是否要为密钥设置一个密码(passphrase)。设置密码可以增加一层安全性,即使你的私钥被盗用,没有密码也无法使用。然而,如果你的目的是实现免密码登录,你可以选择不设置密码(直接按回车键跳过)。

完成这些步骤后,你的SSH密钥对将被创建,然后你可以按前面的说明将公钥添加到远程服务器上。这样设置后,你应该能够在不需要输入密码的情况下通过SSH或SCP连接到服务器。

注意:输入密码时不显示字符——在大多数终端中,出于安全考虑,密码输入时不会显示任何字符,包括星号或点。你只需要正常输入密码然后按回车即可。

2. 将公钥上传到远程服务器

生成密钥后,你需要将公钥(默认为~/.ssh/id_rsa.pub)添加到远程服务器的~/.ssh/authorized_keys文件中。可以手动做,也可以使用ssh-copy-id工具来自动完成:

ssh-copy-id -i ~/.ssh/id_rsa.pub -p 20625 root@connect.westc.gpuhub.com
  • -i ~/.ssh/id_rsa.pub: 指定你的公钥文件。
  • -p 20625: 指定SSH端口。

如果你的系统不支持ssh-copy-id命令,可以手动将公钥内容添加到服务器的~/.ssh/authorized_keys文件中。

3. 测试SSH连接

设置完成后,尝试不带密码连接到服务器:

ssh -p 20625 root@connect.westc.gpuhub.com

如果一切设置正确,你应该能够不需要输入密码就可以登录到服务器。


 

二、文件传输

1.文件上传

root@autodl-container-5aa043a54e-f14d0c9a:~# scp -r -P 20625 C:/0B_workplace/program root@connect.westc.gpuhub.com:/root/autodl-tmp/program/ ssh: Could not resolve hostname c: Name or service not known

看来我们还是在遇到问题。很关键的一点是,你似乎在远程服务器的终端里尝试执行了scp命令,但你需要在你的本地机器上执行这个命令。当你处于远程服务器的shell(如提示符是root@autodl-container...)时,你无法访问你本地机器的文件系统。

为了正确执行这个操作,请确保你在本地的计算机上打开一个新的终端窗口(比如Git Bash或其他终端应用),然后在那里运行scp命令。以下是在你的本地Git Bash中执行的命令示例:

scp -r -P 20625 "C:/0B_workplace/program" root@connect.westc.gpuhub.com:/root/autodl-tmp/program/

请注意几点:

  • 使用双引号包围Windows的路径,尤其是当路径包含空格或特殊字符时。
  • 确保使用正斜杠(/)来表示路径,这是Unix系统和类Unix系统中的标准,包括在Git Bash中。
  • -P 20625 是指定SSH端口的参数,确保这个端口是正确的。

如果你仍然遇到问题,可以确认一下你正在哪个终端运行命令,以及该终端是否可以访问你想要上传的文件夹。如果需要进一步帮助,请随时联系我!


http://www.ppmy.cn/embedded/35965.html

相关文章

Mac M1 解决安装grpcio不可用

问题描述: 使用 pip 已经更新 grpcio 至最新版,调用时还是报错 如下图: Traceback (most recent call last):File "/Users/yu/anaconda3/envs/dify2/lib/python3.10/site-packages/flask/cli.py", line 245, in locate_app__imp…

自动获得IPv4地址:概念、原理、应用与未来趋势

随着互联网的飞速发展,IP地址作为设备在网络中的唯一标识,扮演着越来越重要的角色。IPv4地址,作为目前主流的IP地址类型,其分配与获取方式对于网络设备的连通性和网络管理的效率具有决定性影响。虎观代理小二将带大家一起探讨“自…

【Qt】按钮类控件

文章目录 1 :peach:Push Button:peach:2 :peach:Radio Buttion:peach:3 :peach:Check Box:peach:4 :peach:Tool Button:peach: 1 🍑Push Button🍑 使⽤ QPushButton 表⽰⼀个按钮,这也是当前我们最熟悉的⼀个控件了,QPushButton …

数据交换和异步请求(JSONAjax))

目录 一.JSON介绍1.JSON的特点2.JSON的结构3.JSON的值JSON示例4.JSON与字符串对象转换5.注意事项 二.JSON在Java中的使用1.Javabean to json2.List to json3.Map to JSONTypeToken底层解析 三.Ajax介绍1.介绍2.Ajax经典应用场景 四.Ajax原理示意图1. 传统web应用2.Ajax方法 五.…

《21天学通C++》(第十八章)STL list和forward_list

std::list的特点 1.插入和删除操作高效:在任意位置插入或删除元素的开销是 O(1),不需要像 std::vector 那样可能需要移动大量元素。 2.不支持随机访问:访问 std::list 中的元素需要从头开始遍历到所需位置,访问特定元素的时间复杂…

数字孪生—物联网技术

数字孪生涉及到诸多技术领域,物联网技术在数据孪生项目中具有重要的应用价值,主要体现在以下几个方面: 1.数据采集和实时监测:物联网技术可以用于实时采集各种设备、传感器和设施的数据,包括温度、湿度、压力、振动等…

【前端】HTML实现个人简历信息展示页面

文章目录 前言一、 综合案例:个人简历信息展示页面 前言 这篇博客仅仅是对HTML的基本结构进行了一些说明,关于HTML的更多讲解以及CSS、Javascript部分的讲解可以关注一下下面的专栏,会持续更新的。 链接: Web前端学习专栏 下面我…

「AIGC」深度学习

深度学习是机器学习的一个子领域,它基于人工神经网络的学习算法。深度学习在图像和语音识别、自然语言处理、医学图像分析、药物发现、自动驾驶汽车等领域取得了显著的进展。以下是围绕深度学习的几个关键主题的阐述。 学习路线 基础数学: 了解线性代数…