Linux ssh 免密登录配置

news/2024/10/3 12:03:35 标签: ssh, 运维

参考资料

  1. ~/.ssh/configについて
  2. ~/.ssh/configを使ってSSH接続を楽にする
  3. .ssh/configファイルでSSH接続を管理する

目录

  • 一. 密钥生成
    • 1.1 生成工具
      • 1.1.1 OpenSSH
      • 1.1.2 Git
    • 1.2 生成命令
    • 1.3 注意事项
    • 1.4 解决路径中的用户名乱码
  • 二. 将公钥配置到目标服务,免密登录
    • 2.1 方式1 ssh-copy-id命令行工具
    • 2.2 方式2 手动添加
    • 2.3 效果
  • 三. 免密登录config文件配置
    • 3.1 效果
  • 四. 服务器端公钥位置修改


一. 密钥生成

1.1 生成工具

1.1.1 OpenSSH

⏹Win10系统默认安装了,OpenSSH

在这里插入图片描述

⏹在C:\Windows\System32\OpenSSH\路径中,可以看到可执行文件。

在这里插入图片描述

1.1.2 Git

⏹如果系统中安装了Git,那么在默认的安装路径C:\Program Files\Git\usr\bin中也可找到ssh可实行文件。

在这里插入图片描述

1.2 生成命令

⏹在命令行窗口,输入下面的命令,即可生成一对公钥和私钥。

  • -C:为密钥添加注释,通常用于标识密钥。如果忽略此选项,则会使用用户名@主机名来当做密钥注释添加到密钥中。

  • -f:用户指定密钥生成的路径和密钥名称,默认情况下,密钥将保存到

    • ~/.ssh/id_rsa(私钥)
    • ~/.ssh/id_rsa.pub(公钥)
# windows中
ssh-keygen -t rsa -C "fengyehong123@example.com" -f C:\Users\用户名称\.ssh\ubuntu22_key

# linux中
ssh-keygen -t rsa -C "fengyehong123@example.com" -f ~/.ssh/id_rsa

1.3 注意事项

⏹在Windows中,如果当前的用户名中包含汉字,在未指定密钥生成的路径的情况下,会乱码。

在这里插入图片描述

⏹使用Git自带的ssh工具进行生成,可以避免汉字用户名的乱码问题,但是默认情况下Win10自带的OpenSSH,在环境变量中的权限高于Git中的权限,所以直接在命令行中输入ssh-keygen命令,调用的是OpenSSHssh命令,并非Git中的命令。

在这里插入图片描述

1.4 解决路径中的用户名乱码

⏹方式1:指定生成密钥的路径中不包含汉字

在这里插入图片描述

⏹方式2:直接使用git命令行窗口进行生成(此时使用的是git的ssh工具)

在这里插入图片描述

⏹方式3:修改环境变量,降低OpenSSH工具的优先顺(此时使用的是git的ssh工具)

在这里插入图片描述


二. 将公钥配置到目标服务,免密登录

sshcopyid_68">2.1 方式1 ssh-copy-id命令行工具

⏹通过ssh-copy-id指定本地公钥的路径,传输到目标服务器上

ssh-copy-id -i ~/.ssh/id_rsa.pub apluser@192.168.118.136

⏹下图所示,通过Git的命令行窗口,将公钥配置到目标服务器上

在这里插入图片描述

⏹公钥传输完毕之后,在目标服务器的~/.ssh/authorized_keys路径中可以看到。

在这里插入图片描述

2.2 方式2 手动添加

⏹可以将公钥上传到服务器,然后添加到authorized_keys文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

⏹由于是手动添加,所以需要在服务器端重启一下ssh服务

/etc/init.d/ssh restart

2.3 效果

⏹如果我们的私钥存储在当前用户的.ssh文件夹中,输入ssh apluser@192.168.118.136即可免密登录。

在这里插入图片描述

⏹如果我们的私钥并不存储在当前用户的.ssh文件夹中,指定私钥的位置,即可完成免密登录。

ssh apluser@192.168.118.136 -i 私钥的位置

在这里插入图片描述


三. 免密登录config文件配置

⏹config

Host ubuntu_22
  HostName 192.168.118.136
  User apluser
  Port 22
  StrictHostKeyChecking no
  # 指定密钥的位置
  IdentityFile D:\id_rsa

3.1 效果

⏹如下图所示,直接通过配置文件中的别名,完成免密登录。

在这里插入图片描述


四. 服务器端公钥位置修改

⏹在服务器端的/etc/ssh/sshd_config文件中,有关于认证文件的配置
如果不想让公钥存储在默认路径下,可修改AuthorizedKeysFile的相关内容,指定公钥路径

apluser@ubuntu221:~$ ls -l /etc/ssh/sshd_config
-rw-r--r-- 1 root root 3255 Aug  9 02:33 /etc/ssh/sshd_config
apluser@ubuntu221:~$
apluser@ubuntu221:~$ grep AuthorizedKeysFile /etc/ssh/sshd_config
#AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2

⏹修改sshd_config配置文件,需要root用户权限

在这里插入图片描述

  • %h:当前用户的主目录

在这里插入图片描述

⏹修改完毕之后,同样需要在服务器端重启一下ssh服务,确保配置文件实时反映。

/etc/init.d/ssh restart

http://www.niftyadmin.cn/n/5688328.html

相关文章

中国身份证号码校验

题目描述 第二届河南省最美教师评选开始了,每一位同学都可以投票选出你支持的人选,但是为了防止刷票,必须通过身份验证才可投票。负责投票平台后台的老大爷希望你能帮他验证身份证号的合法性,防止那些熊孩子随意刷票,…

Elasticsearch基础_5.ES聚合功能

文章目录 一、数据聚合1.1、桶聚合1.1.1、单维度桶聚合1.1.2、聚合结果排序1.1.3、限定聚合范围 本文只记录ES聚合基本用法,后续有更复杂的需求可以查看相关书籍,如《Elasticsearch搜索引擎构建入门与实战》 一、数据聚合 聚合可以让我们极其方便的实现…

双大马士革工艺与单大马士革有什么区别?

知识星球里的学员问:铜互联中的大马士革工艺有几种?一直分不清,可以讲解下吗? 大马士革工艺用在哪里? 大马士革工艺(Damascene Process),使铜作为互连材料成为可能。铜相较于铝具有更…

如何判断一个元素在可视区域内(内含案例)

判断一个元素是否在可视区域中,可以使用JavaScript的 IntersectionObserver 或 getBoundingClientRect 方法。以下是两种常见的方式: 1. 使用 getBoundingClientRect() 方法 getBoundingClientRect() 返回元素相对于视口的大小和位置,然后通…

css3-----2D转换、动画

2D 转换(transform) 转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果 移动:translate旋转:rotate缩放:scale 二维坐标系 2D 转换之移动 trans…

开源模型应用落地-模型微调-语料采集-数据格式化(四)

一、前言 在自然语言处理(NLP)的快速发展中,语料采集作为基础性的步骤显得尤为重要。它不仅为机器学习模型提供了所需的训练数据,还直接影响模型的性能和泛化能力。随着数据驱动技术的不断进步,如何有效并高效地收集、清洗和整理丰富多样的语料,已成为研究者和工程师们亟…

深入探索 Pygwalker:Python 数据可视化的强大工具

目录 Pygwalker 简介安装 PygwalkerPygwalker 的基本用法 创建基础图表使用多种图表类型 数据预处理与清洗交互式可视化自定义图表样式与其他数据科学库的结合Pygwalker 的性能评估实际应用案例总结与展望 1. Pygwalker 简介 Pygwalker 是一款开源的 Python 数据可视化库&…

适用于 Windows 10 的最佳 PDF 编辑器列表,可帮助更改 PDF 文件。

PDF 是一种流行的、多功能且安全的文件格式,用于在线共享文档。但是,如果没有合适的应用程序,查看和编辑 PDF 文件可能会变得复杂。 幸运的是,有很多 PDF 编辑器可以帮助您更正重要文档上的错误、填写表格、为合同添加签名、更改…