返回顶部
首页 > 资讯 > 操作系统 >Linux ~/.ssh目录详解和密钥对使用
  • 554
分享到

Linux ~/.ssh目录详解和密钥对使用

linuxssh服务器 2023-08-19 09:08:28 554人浏览 安东尼
摘要

.ssh目录内容 linux中,每个用户的根目录下都有一个.ssh目录,保存了ssh相关的key和一些记录文件。例如: root@ubuntu:~/.ssh# lsauthorized_keys id_rsa id_rsa.pub k

.ssh目录内容

linux中,每个用户的根目录下都有一个.ssh目录,保存了ssh相关的key和一些记录文件。例如:

root@ubuntu:~/.ssh# lsauthorized_keys  id_rsa  id_rsa.pub  known_hosts  known_hosts.old

使用ssh-keygen生成key

ssh-keygen可以生成ssh协议所需要的公钥和私钥,例如:

ssh-keygen -t rsa

此命令将生成一个私钥文件(默认为id_rsa)和一个公钥文件(默认为id_rsa.pub)。
其中私钥是必须保存在.ssh目录中的,只有该主机的该用户可以使用。而公钥是给需要使用ssh验证的服务器,使用密钥对可以免密码验证,比如ssh,scp,rsync等。

known_hosts 和 known_hosts.old

known_hostsknown_hosts.old是SSH客户端中的文件,用于存储已知主机的公钥信息。以下是它们的作用和功能:

  1. known_hosts文件:这个文件包含了您曾经连接过的远程主机的公钥信息。当您首次连接一个远程主机时,SSH客户端会将该主机的公钥保存在known_hosts文件中。下次再次连接该主机时,客户端会验证主机的公钥是否与之前保存的一致,以防止中间人攻击。如果主机的公钥发生变化,客户端会发出警告,以提醒您进行确认。

  2. known_hosts.old文件:当SSH客户端检测到known_hosts文件发生了变化(比如主机公钥发生了更改)时,它会将原始的known_hosts文件备份为known_hosts.old。这样,您可以在需要时恢复到旧的已知主机配置。

这些文件通常位于SSH客户端用户的~/.ssh/目录下,每个用户都有自己的独立副本。

请注意,known_hosts文件不包含任何敏感信息,它只存储了公钥信息以供身份验证使用。但是,如果您的系统存在安全问题,有人可能会通过欺骗您来窃取您的密钥,因此当发现known_hosts文件发生变化时,务必审查和验证公钥的有效性。

authorized_keys文件

authorized_keys文件位于SSH服务器上,用于存储允许访问该服务器的客户端的公钥。当您希望使用密钥进行SSH身份验证时,您需要将您的公钥添加到目标服务器的authorized_keys文件中。只有在authorized_keys文件中列出的公钥才能成功进行身份验证并获得访问权限。

authorized_keys文件的作用是配置服务器允许哪些客户端使用密钥进行身份验证。每个客户端的公钥都需要在该文件中有相应的条目才能成功进行身份验证。

known_hosts和authorized_keys的区别

虽然known_hosts和authorized_keys两个文件都涉及到存储其他主机的公钥信息,但它们在SSH身份验证过程中的角色和功能是不同的。
known_hosts文件用于SSH客户端验证远程主机的身份,而authorized_keys文件用于SSH服务器验证客户端的身份。它们在SSH连接过程中扮演了不同的角色,并且存储的公钥信息也有不同的来源和目的。
你可能在.ssh目录中同时看到known_hosts和authorized_keys文件,因为这个主机即可以作为ssh客户端去连接其他主机,也可以作为ssh服务器被其他主机连接,因此这两个文件就都存在。

公钥使用举例:rsync免密同步文件

使用rsync同步文件时,我们可以在目标主机用户上保存当前主机用户的公钥,以实现免密同步文件。

  • 首先,保证我们的客户端主机的当前用户已经有密钥对,如果没有就使用ssh-keygen生成一对。
  • 如果我们知道目标主机用户的authorized_keys文件是空的,可以使用以下方法将客户端的公钥复制到目标主机上的~/.ssh/authorized_keys文件中:
  • ssh-copy-id -i ~/.ssh/id_rsa.pub user@target_host
    替换user为目标主机上的用户名,target_host为目标主机的IP地址或主机名。执行此命令后,系统会要求您输入目标主机的密码。
    如果ssh-copy-id命令不可用,请手动将公钥内容复制到目标主机的~/.ssh/authorized_keys文件中。
  • 但很有可能,目标主机用户的authorized_keys文件已经保存了其他客户端的公钥信息,所以我们大概率不能覆盖这个文件。但我们可以将自己的公钥信息添加到这个文件末尾。
    1. 首先,将我们的公钥文件上传到目标主机上:
      scp -P 22 ~/.ssh/id_rsa.pub user@target_host:/tmp/id_rsa.pub
      替换user为目标主机上的用户名,target_host为目标主机的IP地址或主机名。-P选项可以设置ssh服务的端口,如果目标主机的ssh服务是其他端口,请在这儿替换。
    2. 追加公钥到现有文件:登录到目标主机,并将公钥追加到~/.ssh/authorized_keys文件的末尾。在目标主机上运行以下命令:
      cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
    3. 清理临时文件(可选):可以在目标主机上删除临时公钥文件。运行以下命令:
      rm /tmp/id_rsa.pub
      现在,您已成功将公钥添加到目标主机上现有的~/.ssh/authorized_keys文件的末尾,而不会覆盖它。
  • 使用ssh登录验证
    向目标主机的user用户的.ssh/authorized_keys中添加源主机用户的公钥信息后,就可以直接使用ssh免密登录了:
    ssh user@target_host
    如果一切顺利,您应该能够在不输入密码的情况下成功登录到目标主机。
  • 使用rsync同步文件
    rsync -avz -e "ssh -p 22" /path/to/source user@target_host:/path/to/destination
    替换/path/to/source为源文件或目录的路径,user为目标主机上的用户名,target_host为目标主机的IP地址或主机名,/path/to/destination为目标文件或目录的路径。
    在使用rsync命令时,指定了-e "ssh -p 22"选项,它告诉rsync使用22端口进行SSH连接。由于您已经设置了密钥身份验证,rsync将使用密钥进行身份验证,而不需要输入密码。

来源地址:https://blog.csdn.net/n5/article/details/130965092

--结束END--

本文标题: Linux ~/.ssh目录详解和密钥对使用

本文链接: https://lsjlt.com/news/375254.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux ~/.ssh目录详解和密钥对使用
    .ssh目录内容 Linux中,每个用户的根目录下都有一个.ssh目录,保存了ssh相关的key和一些记录文件。例如: root@ubuntu:~/.ssh# lsauthorized_keys id_rsa id_rsa.pub k...
    99+
    2023-08-19
    linux ssh 服务器
  • 如何使用ssh公钥密钥登陆linux
    这篇文章主要介绍如何使用ssh公钥密钥登陆linux,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在我们平时使用Linux系统时候,通常使用的Linux SSH登录方式是用户名加密码的登录方式,今天来探讨另外的一种相...
    99+
    2023-06-28
  • 使用私钥登录 SSH 服务器(免密登录)
    SSH(Secure Shell)是一种用于远程登录和安全数据传输的协议。通过SSH,您可以在不安全的网络上安全地连接到远程服务器,并进行加密的数据传输。SSH支持多种身份验证方式,其中之一是使用SSH密钥对进行免密码登录。以下是使用私钥登...
    99+
    2023-12-23
    ssh 服务器 运维
  • 如何使用ssh公钥密钥自动登陆linux服务器
    本篇内容介绍了“如何使用ssh公钥密钥自动登陆linux服务器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!测试环境:操作系统:Red Ha...
    99+
    2023-06-27
  • 如何使用公钥/私钥对设定免密的Linux登录方式
    小编给大家分享一下如何使用公钥/私钥对设定免密的Linux登录方式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用一组公钥/私钥对让你不需要密码登录到远程 Li...
    99+
    2023-06-16
  • Termux的ssh使用方式(连接云服务器,ssh密钥登录和Termux互联)
    目录 写在最前1.连接服务器2.为服务器和termux添加ssh免密登录3.使用Termux连接另一台手机上的TermuxSSH的简单配置文件 写在最前  Termux作为强大的终端模...
    99+
    2023-09-15
    linux
  • VSCode如何使用ssh密钥免密远程登录服务器
    这篇文章主要为大家展示了“VSCode如何使用ssh密钥免密远程登录服务器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VSCode如何使用ssh密钥免密远程登录服务器”这篇文章吧。1. 使用s...
    99+
    2023-06-20
  • 实现一台或者多台Linux实例解绑SSH密钥对
    DetachKeyPair 为一台或者多台 linux 实例解绑 SSH 密钥对。 描述 使用该接口时,请注意: 解绑 SSH 密钥对后,您需要重启实例(RebootInstance)使更改生效。 解绑 SSH 密钥对后...
    99+
    2022-06-04
    Linux SSH
  • Windows下使用SSH密钥实现免密登陆Linux服务器
    工具: win10、WinSCP 生成ssh密钥: 打开终端,使账号密码登录,输入命令 ssh-keygen -t rsa 会提示密钥存放路径,一般存放在默认路径,直接回车即可,中间会提示输入密码,这里需要注意,如果设置密码,则每次登陆的时...
    99+
    2023-09-01
    服务器 linux ssh
  • Linux下SSH免密码登录配置详解
    假设有 A、 B 两台 linux 服务器,我们希望能够从其中一台服务器通过 SSH 免密码登录到另一台服务器。 两台服务器的信息如下:  主机名 IP地址 ...
    99+
    2022-06-04
    Linux SSH免密码登录 Linux SSH登录
  • VSCode使用ssh密钥免密远程登录服务器的方法
    目录1. 使用ssh密钥免密远程登录服务器2. 配置解释器1. 使用ssh密钥免密远程登录服务器 如果你还未曾成功远程登陆过服务器,下面这篇博客或许对你有帮助 如果你成功远程登陆过服...
    99+
    2024-04-02
  • Linux 系统使用私钥登录的教程详解
    linux 系统系统如何使用私钥登录?Linux服务器每次都要输入负责的密码,为了方便、安全RCTTv登录Linux服务器,使用私钥公钥来登录。 生成ssh公钥密钥对: #ssh-keygen -t rsa -t?...
    99+
    2022-06-04
    linux 私钥登录
  • linux中ssh如何使用rsa免密码登录
    这篇文章主要讲解了“linux中ssh如何使用rsa免密码登录”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中ssh如何使用rsa免密码登录”吧!A为本地主机(即用于控制其他主机的...
    99+
    2023-06-13
  • Node.js如何使用Diffie-Hellman密钥交换算法详解
    简介 Diffie-Hellman(简称DH)是密钥交换算法之一,它的作用是保证通信双方在非安全的信道中安全地交换密钥。目前DH最重要的应用场景之一,就是在HTTPS的握手阶段,客户端、服务端利用DH算法...
    99+
    2022-06-04
    密钥 如何使用 算法
  • Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享
    环境: ssh server: 192.168.100.29 server.example.com ssh client: 192.168.100.30 client.example.com 通过roo...
    99+
    2022-06-04
    脚本 密码 Linux
  • Linux下如何实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本
    这篇文章主要介绍了Linux下如何实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境:ssh server: 1...
    99+
    2023-06-09
  • 怎么在Linux环境中远程开启ssh端口和更改ssh用户根目录
    这篇文章主要介绍“怎么在Linux环境中远程开启ssh端口和更改ssh用户根目录”,在日常操作中,相信很多人在怎么在Linux环境中远程开启ssh端口和更改ssh用户根目录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-06-12
  • linux下ssh安装与scp命令使用详解
    ubuntu默认并没有安装ssh服务,可以通过如下命令进行: yblin@yblin-desktop:~$ ssh localhost ssh: connect to host localhost po...
    99+
    2022-06-04
    详解 命令 linux
  • 如何使用密钥身份验证在CentOS服务器上实现更安全的SSH登录
    要在CentOS服务器上实现更安全的SSH登录,你可以使用密钥身份验证。以下是一些步骤可以帮助你完成这个过程:1. 生成密钥对:在本...
    99+
    2023-10-10
    CentOS
  • 在 SSH 中使用 RSA 和 DSA 认证(详解)
    [原贴]http://weblog.kreny.com/archives/2005/10/rsadsa_authenti.html  [作者]:kreny一直想把自己的服务器的 SSH 认证的模式从用户名密码模式转换成 ...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作