SSH免密登录的配置

ssh登录

登录ssh一般情况有两种方法

  • 密码登录
  • 秘钥登录(免密)

大部分情况我们选择都是输入密码登录,平常使用暂时没有遇到什么问题。最近我编写了一些使用scp来传输文件的脚本,每一次scp都需要输入密码,甚是麻烦。又或者是服务器集群需要多台服务器的通信等,这个时候免密登录就至关重要了。

基本原理

免密登录的原理大概了解一下就可以啦,Client即需要免密登录的客户端,Server表示被免密登录的服务器,本文后续也以此命名。

Client生成密钥对并将公钥发给Server,Server将公钥保存;
Client要登录Server时,Server生成随机字符串并用Client的公钥加密后,发给Client;
Client用私钥将其解密后发回给Server,验证成功后登录。

在Server的秘钥文档~/.ssh/authorized_keys有Client的公钥文件id_

Client秘钥

在Client生成公钥和私钥,只需要:

ssh-keygen

后面一直按回车就可以啦

当然ssh-keygen也有一些参数可选

  • -t 选择密钥类型,可选dsa、ecdsa、ed25519、rsa(默认)

  • -b 指定生成的密钥的大小,单位字节Byte

  • -C 生成密钥的描述信息,默认内容是user@hostname。(会追加到公钥.pub 内容的末尾)

  • -f 选择文件输出名字或路径

  • -N 指定新密码,” 表示密码为空

  • -q 快速生成,不而外显示内容在终端

ssh-keygen -t ed25519 -b 2048

在完成ssh-keygen后私钥和公钥文件生成在~/.ssh中(Windows在C:\Users\用户名.ssh中)。

  • 私钥:id_
  • id_rsa、id_dsa、id_ed25519、id_ecdsa
  • 公钥:id_
  • id_rsa.pub、id_dsa.pub、id_ed25519.pub、id_ecdsa.pub

Server授权

Client生成的公钥,我们需要追加在Server的文件~.ssh/authorized_keys末尾。免密登录,可以存放多条。

可以使用ftp、sftp(scp命令)、http(wget、curl)等多种方法将Client公钥追加在Server授权authorized_keys文件中。也可以直接使用ssh-copy-id。

在Client执行ssh-copy-id

ssh-copy-id root@192.168.2.159 -p 22

只要把Client的公钥追加到Sever的authorized_keys就可以了,哪怕你ssh连接进去vim authorized_keys粘贴效果也一样的。

对了随便说一下,know_hosts : 已知的主机公钥清单

请注意权限问题:

  • ssh目录的权限必须是700(即rwx——)
chmod 700 ~/.ssh
  • .ssh/authorized_keys文件权限必须是600(即rw——)
chmod 600 ~/.ssh/authorized_keys
  • 将sshd服务重新启动一下,退出登录,发现已经生效了,不需要输入密码登录。
systemctl restart sshd.service

命令总结

#Client中
ssh-keygen -t [dsa|ecdsa|ed25519|rsa] -d 2048
ssh-ssh-copy-id root@ip -p 22
#Sever中
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
systemctl restart sshd.service

Original: https://www.cnblogs.com/alittlemc/p/16635607.html
Author: alittlemc
Title: SSH免密登录的配置

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578149/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • UE4编辑器使用PS4/NS PRO手柄

    在Steam里,点击添加非Steam游戏,把Unreal Engine添加进去,进大屏幕模式,设置手柄配置为强制开启即可! 网上看到各种教程,都太复杂了………

    Linux 2023年6月6日
    0124
  • 免外围电路CH32F/CH32V/STM32F系列单片机串口一键下载方案(CH340)

    一、概述 CH340X和CH340C等USB转串口芯片提供专用下载模式,可实现免外围电路CH32F/CH32V/STM32F等单片机串口一键下载功能,对此类支持多模式启动的单片机,…

    Linux 2023年6月7日
    0132
  • BKT的胡测题解:第一套第二题reactor

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/Grharris/p/11530297.htmlAuth…

    Linux 2023年6月6日
    0100
  • 回溯法:算法思路以及相关流程图的绘制

    参考建模原文2020国赛B题参考文章1 回溯法介绍 深度优先搜索(缩写DFS):对一个连通图进行遍历的算法。它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标…

    Linux 2023年6月14日
    093
  • wordpress固定链接+宝塔nginx配置伪静态访问URL

    一、站点设置 打开站点设置,选择伪静态,选择wordpress 二、wordpress设置 打开wordpress后台,选择 设置 —》固定链接 选择一个你喜欢的格式点…

    Linux 2023年6月14日
    0105
  • Linux系统编程之进程概念

    注:本文中的部分图片来自互联网。如果有侵权行为,请通知我们删除。 [En] Note: some of the pictures in this article come from…

    Linux 2023年5月27日
    086
  • 初探paramiko

    paramiko模块简介 paramiko是基于SSHv2协议开发的,可用于连接远程SSH服务器,通过SSH连接执行远程命令或者文件传输。paramiko支持Python(2.7,…

    Linux 2023年6月7日
    086
  • centos7 安装MariaDB 10.6

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 背景 centos7使用yum install mariadb-server命令安装的默认版本是5.5的,这是因为系统默认源只有…

    Linux 2023年5月27日
    0375
  • neovim环境与vim简单使用

    Github仓库 neovim的配置 这里列出我自己使用的 init.vim,如果插件无法安装,请按照github仓库中给出的解决方法解决(手动clone安装即可)。参考了gith…

    Linux 2023年6月8日
    0109
  • JavaScript快速入门-08-JSON

    8 JSON 因平时工作时,使用JSON的场景比较多,其JSON语法不再介绍,仅介绍在JavaScript中JSON的解析和序列化。 8.1 JSON 对象 JSON对象有两个方法…

    Linux 2023年6月7日
    0110
  • csrf跨站请求伪造;auth模块

    csrf跨站请求伪造 针对csrf相关的校验有很多种方式,django只是提供了一些而已 form表单 前提必须是前后端整合,能够使用模板语法 {% csrf_token %} 当…

    Linux 2023年6月7日
    089
  • 3.20 什么是环境变量,Linux环境变量有哪些?

    变量是计算机系统用于保存可变值的数据类型,我们可以直接通过变量名称来提取到对应的变量值。在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(…

    Linux 2023年6月7日
    0105
  • python学习

    python中的字符串以双引号或者单引号表示 长度为L:第一个字节索引为0或-L 最后一个字节索引为L-1或-1 in是二元关系操作,用来判断左侧内容是否在右侧的集合中 float…

    Linux 2023年6月6日
    0104
  • Android系统的三种分屏显示模式

    Google在Android 7.0中引入了一个新特性——多窗口支持,允许用户一次在屏幕上打开两个应用。在手持设备上,两个应用可以在”分屏”模式中左右并排或…

    Linux 2023年6月7日
    0110
  • 安装及管理文件

    优点: 契合系统兼容性强 如果你可以看懂源代码,修改新增功能 比较自由 缺点: 如果编译出了问题,你看不懂源代码,无法解决 安装过程复杂 没有统一的管理人员 安装过程 程序包编译安…

    Linux 2023年6月6日
    0106
  • 页面国际化

    页面国际化 有的时候,我们的网站会去涉及中英文甚至多语言的切换,这时候我们就需要对页面进行国际化设计了。 6.1 准备工作 在IDEA中统一设置properties的编码格式 6….

    Linux 2023年6月14日
    0109
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球