当前位置: 首页 > backend >正文

ssh连接云服务器记录

文章目录

    • 1. 背景
    • 2. ssh连接
      • 2.1 win 下通过终端工具进行连接
      • 2.2 Linux下通过ssh指令连接
      • 2.3 ssh使用publickey来连接

ssh连接云服务器记录

1. 背景

最近开始接触docker技术、mysql技术,加上本人工作基本都在Linux下进行,因此需要一套Linux环境进行练习。虽然本人有一台ARM架构的Linux设备,但好多软件没有现成的,需要交叉编译,影响实际的效率。思之又之,决定租赁一台云服务器进行快速开始。

🎯 🏹 总之,为了快速实现我们的需求,选择了 云服务器方式。

此处省略云服务器搭建过程,一般购买后,设置对应的OS,设置一下密码,开启对应的端口就可以进行连接了。

2. ssh连接

云服务器可以直接打开网站,在网站上通过CloudShell进行连接,缺点是必须要进入对应的网页。对于我们这种懒人来说,当然是在本地使用ssh远程连接更方便的。

在使用 ssh 进行连接之前,我们需要获取一下公网IP:
在这里插入图片描述

2.1 win 下通过终端工具进行连接

本人这里的终端工具是免费版的 mobaxterm,有需要的可以进行下载 mobaxterm下载,打开软件后,按照下面进行操作:
在这里插入图片描述

上面输入IP后,点击OK进入下面的界面,输入用户名和密码后即可进行登录
在这里插入图片描述

2.2 Linux下通过ssh指令连接

当我们有一台Linux设备,或者本身就双系统的时候,在Linux下没有Mobaxterm软件,想要连接云服务器的时候,就需要通过ssh指令进行操作了:

ssh 连接的时候,直接 ssh + 公网IP 就可以了,但是初次竟然失败了:
在这里插入图片描述

折腾了好久,查询资料以及看云服务器测的失败说明,都没有解决问题,后面猛然间发现用户名怎么是cat不是我们的root,猜测应该是继承了我们的设备主机名,因此换一个连接方式试一下:

ssh root@xx.xx.xx.xx   #后面的xx.xx.xx.xx 公网IP,前面的root是云服务器用户名

这一次密码输入后一下子就连接上了。

你以为到这就结束了,no,每次进入都要输入密码,我还是不想输入密码怎么办,请看下面我们使用publickey来解决这个问题。

2.3 ssh使用publickey来连接

如果我们在 Linux 服务器上正确配置了免密码登录,也就是使用用密钥认证代替密码认证,就可以实现不用输入密码就能远程登录到服务器。免密码登录的需求主要是为了方便、安全和高效

  • 实现方式

    • 在客户机生成秘钥对,然后把公钥传给远程机
  • 实现原理

    • 自己的公钥储存在远程主机上。当我们尝试登录时,远程主机会向客户端发送一段随机字符串。客户端使用自己的私钥进行加密,并将加密后的结果发送回远程主机。远程主机随后使用事先存储的客户端的公钥来尝试解密这个字符串。如果解密成功,远程主机就会确认客户端是可信的,并直接允许客户端登录到shell,无需再输入密码。
    • 加密和解密涉及到非对称加密算法(RSA),有兴趣的可以去研究下。
  • 生成秘钥对

    ssh-keygen -t rsa
    

    中间按3次回车即可生成秘钥对。

    cat@lubancat:~$ ls ~/.ssh/
    id_rsa  id_rsa.pub  known_hosts  known_hosts.old
    

    上面的id_rsa是我们生成的私钥,id_rsa.pub是我们的公钥。

    通过ssh-copy-id指令将本地的公钥传输到服务器端,指令格式如下:

    ssh-copy-id [选项] [用户名@]远程主机
    

    参数说明

    • -i:指定要复制的本地公钥文件路径,默认为~/.ssh/id_rsa.pub
    • 用户名:远程主机上的登录用户名,如果省略,则使用当前本地主机的用户名。
    • 远程主机:可以是远程主机的IP地址或域名。

此处,本人使用如下指令完成公钥传输:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@xx.xx.xx.xx    #xx.xx.xx.xx为公网IP
# 可以使用下面的简化指令,默认会追加,不覆盖
ssh-copy-id root@xx.xx.xx.xx    #xx.xx.xx.xx为公网IP

注意事项

  • 如果远程主机的~/.ssh/authorized_keys文件不存在,ssh-copy-id命令会自动创建该文件。

  • 确保远程主机的SSH服务已启动,并且允许公钥认证登录。

    • 可以使用cat /etc/ssh/sshd_config指令查看是否是能公钥认证

      PermitRootLogin yes
      PasswordAuthentication yes
      UseDNS no
      HostKeyAlgorithms +ssh-rsa
      PubkeyAcceptedKeyTypes +ssh-rsa   #本机此处是指定使用ssh-rsa进行认证,若发现没有开启,执行搜索开启
      

然后我们在服务器侧查看 ~/.ssh/authorized_keys对比本地的公钥就知道有没有上传成功了。

后面我们再次连接ssh就发现不需要密码了。

行认证,若发现没有开启,执行搜索开启
```

然后我们在服务器侧查看 ~/.ssh/authorized_keys对比本地的公钥就知道有没有上传成功了。

后面我们再次连接ssh就发现不需要密码了。

http://www.xdnf.cn/news/3924.html

相关文章:

  • 一种实波束扫描雷达角超分辨方法——论文阅读
  • Delphi创建IIS虚拟目录的方法
  • StampLock的源码详细剖析
  • SSE技术的基本理解以及在项目中的使用
  • 商场防损部绩效考核制度与管理方法
  • 【操作系统】读者-写者问题
  • Git_.gitignore文件简介及使用
  • C与指针——输入输出
  • 什么是constexpr?
  • 解决:前后端跨域请求
  • 【Redis】Java操作Redis之SpringDataRedis
  • 洛谷 P1495:【模板】中国剩余定理(CRT)/ 曹冲养猪
  • 数字化转型-4A架构之业务架构
  • 深度优先搜索(DFS)与广度优先搜索(BFS):图与树遍历的两大利器
  • 74HC123的电路应用场景
  • 一键获取当前项目的所有文件结构并保存到文本文件
  • 【数据结构与算法】常见排序算法详解(C++实现)
  • Java大师成长计划之第12天:性能调优与GC原理
  • word页眉去掉线
  • LLama-v2 权重下载
  • Linux 进程基础(二):操作系统
  • TensorFlow深度学习实战——基于循环神经网络的词性标注模型
  • 接口自动化测试项目框架详解
  • USB Type-C是不是全方位优于其他USB接口?
  • 在有限的内存中计算超限数据的重复值
  • c++ 之 cout
  • 【形式化验证】动态逻辑(DL)的定义解释与示例
  • Docker 渡渡鸟镜像同步站 使用教程
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】2.5 事务与锁机制(ACID特性/事务控制语句)
  • 强化学习机器人模拟器——QAgent:一个支持多种强化学习算法的 Python 实现