设置SSH无密码登录

生成密钥

利用指令生成一对(公钥、私钥)。公钥用于上传服务器,私钥留在本机。

  • 参数t用于指定加密类型,有dsa | ecdsa | ed25519 | rsa
  • 参数b用于指定密钥长度
ssh-keygen -b 4096 -t rsa

密钥对默认保存在(前缀)/.ssh文件夹内。

发送密钥

指令发送

接着把公钥上传到服务器。

  • i 指定上传哪一个公钥文件,如id_ed25519.pub
  • p 指定端口
ssh-copy-id [-i filename] [-p portnumber] username@ip

手动复制

实际上直接把id_ed25519.pub里面的内容复制到对应机器用户下的~/.ssh/authorized_keys文件内即可

存储结构

服务器端公钥放置

  • 本机作为服务器的公钥将会被放在authorized_keys这个文件里面
  • 它的每一个entry正是访问机器发给它的公钥
    在这里插入图片描述

主机名配置

由于每次都需要username@ip的形式登录,可以写一个config文件简化此过程。
在config文件里设置username和ip等详细信息。
后续只需要ssh test,即可连接上主机。
(下面的Host等关键字,大小写不重要;HostName前面的空格,也不重要)
在这里插入图片描述

密钥

密钥根据加密方式会有不同的文件名。
如用ed25519加密的密钥对,如下:

  • 没有后缀的为私钥
  • 有pub后缀的是公钥
    在这里插入图片描述

known_hosts文件

  1. 似乎无论你是何种加密方式,都会存在有几种加密方式的记录entry,如下就有三种
  2. 同时哪怕你删除了全部entry,重新登录之后仍然会恢复成如下所示。
  3. 此文件用途本人未深究。
    在这里插入图片描述
    当你访问的机器:
  4. 首次访问
  5. 更新公钥
    你就需要把他的连接信息保存到known_hosts中。
    在这里插入图片描述
  • 注意:此处并不是把SHA256后面的值存入known_hosts中,具体是什么,暂未研究。

本校网络相关

在操作ssh无密码登录的过程中,我发现了一些现象:

  1. 接入办公室wifi的mac可以ssh通楼上的服务器(49.123.X.X)
  2. 楼上的服务器却ssh不通我的mac(192.168.1.103)
  3. mac登录服务器时显示的ip也是49.123.X.X类型的
    后来发现办公楼内所有单根网线都是49开头的ip,而接入wifi WAN口的线也是如此。
    因而mac在办公室wifi的子网下,而服务器处于更高一层的网络。所以mac可以通过ip4和ssh端口找到服务器,但服务器不能通过ip4和ssh端口找到mac。

未完成

  • [ ]网上说这个49.123.X.X是cernet提供的网络服务,全国大部分高校的校园网都在这个系统里面。但49.123.X.X却又不是一个公网ip

参考

https://cloud.tencent.com/developer/article/1720991
关于 Linux 中 known_hosts 文件的必知必会
查ip相关信息的网站-中文
查ip相关信息的网站-英文(上下不同)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值