iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >如何使用公钥/私钥对设定免密的Linux登录方式
  • 835
分享到

如何使用公钥/私钥对设定免密的Linux登录方式

2023-06-16 04:06:46 835人浏览 独家记忆
摘要

小编给大家分享一下如何使用公钥/私钥对设定免密的linux登录方式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用一组公钥/私钥对让你不需要密码登录到远程 Li

小编给大家分享一下如何使用公钥/私钥对设定免密的linux登录方式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

使用一组公钥/私钥对让你不需要密码登录到远程 Linux 系统或使用 ssh 运行命令,这会非常方便,但是设置过程有点复杂。下面是帮助你的方法和脚本。

在 Linux 系统上设置一个允许你无需密码即可远程登录或运行命令的帐户并不难,但是要使它正常工作,你还需要掌握一些繁琐的细节。在本文,我们将完成整个过程,然后给出一个可以帮助处理琐碎细节的脚本。

设置好之后,如果希望在脚本中运行 ssh 命令,尤其是希望配置自动运行的命令,那么免密访问特别有用。

需要注意的是,你不需要在两个系统上使用相同的用户帐户。实际上,你可以把公用密钥用于系统上的多个帐户或多个系统上的不同帐户。

设置方法如下。

在哪个系统上启动?

首先,你需要从要发出命令的系统上着手。那就是你用来创建 ssh 密钥的系统。你还需要可以访问远程系统上的帐户并在其上运行这些命令。

为了使角色清晰明了,我们将场景中的第一个系统称为 “boss”,因为它将发出要在另一个系统上运行的命令。

因此,命令提示符如下:

boss$

如果你还没有在 boss 系统上为你的帐户设置公钥/私钥对,请使用如下所示的命令创建一个密钥对。注意,你可以在各种加密算法之间进行选择。(一般使用 RSA 或 DSA。)注意,要在不输入密码的情况下访问系统,你需要在下面的对话框中的两个提示符出不输入密码。

如果你已经有一个与此帐户关联的公钥/私钥对,请跳过此步骤。

boss$ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/myself/.ssh/id_rsa):Enter passphrase (empty for no passphrase):            <== 按下回车键即可Enter same passphrase again:                           <== 按下回车键即可Your identification has been saved in /home/myself/.ssh/id_rsa.Your public key has been saved in /home/myself/.ssh/id_rsa.pub.The key fingerprint is:SHA256:1zz6pZcMjA1av8iyojqo6NVYgTl1+cc+N43kIwGKOUI myself@bossThe key's randomart image is:+---[RSA 3072]----+|     . ..        ||   E+ .. .       ||  .+ .o + o      ||   ..+.. .o* .   ||    ... So+*B o  ||    +   ...==B . || . o .   ....++. ||o o   . . o..o+  ||=..o.. ..o  o.   |+----[SHA256]-----+

上面显示的命令将创建公钥和私钥。其中公钥用于加密,私钥用于解密。因此,这些密钥之间的关系是关键的,私有密钥绝不应该被共享。相反,它应该保存在 boss 系统的 .ssh 文件夹中。

注意,在创建时,你的公钥和私钥将会保存在 .ssh 文件夹中。

下一步是将公钥复制到你希望从 boss 系统免密访问的系统。你可以使用 scp 命令来完成此操作,但此时你仍然需要输入密码。在本例中,该系统称为 “target”。

boss$ scp .ssh/id_rsa.pub myacct@target:/home/myaccountmyacct@target's passWord:

你需要安装公钥在 target 系统(将运行命令的系统)上。如果你没有 .ssh 目录(例如,你从未在该系统上使用过 ssh),运行这样的命令将为你设置一个目录:

target$ ssh localhost datetarget$ ls -la .sshtotal 12drwx------ 2 myacct myacct 4096 Jan 19 11:48 .drwxr-xr-x 6 myacct myacct 4096 Jan 19 11:49 ..-rw-r--r-- 1 myacct myacct  222 Jan 19 11:48 known_hosts

仍然在目标系统上,你需要将从“boss”系统传输的公钥添加到 .ssh/authorized_keys 文件中。如果该文件已经存在,使用下面的命令将把它添加到文件的末尾;如果文件不存在,则创建该文件并添加密钥。

target$ cat id_rsa.pub >> .ssh/authorized_keys

下一步,你需要确保你的 authorized_keys 文件权限为 600。如果还不是,执行命令 chmod 600 .ssh/authorized_keys

target$ ls -l authorized_keys-rw------- 1 myself myself 569 Jan 19 12:10 authorized_keys

还要检查目标系统上 .ssh 目录的权限是否设置为 700。如果需要,执行 chmod 700 .ssh 命令修改权限。

target$ ls -ld .sshdrwx------ 2 myacct myacct 4096 Jan 14 15:54 .ssh

此时,你应该能够从 boss 系统远程免密运行命令到目标系统。除非目标系统上的目标用户帐户拥有与你试图连接的用户和主机相同的旧公钥,否则这应该可以工作。如果是这样,你应该删除早期的(并冲突的)条目。

使用脚本

使用脚本可以使某些工作变得更加容易。但是,在下面的示例脚本中,你会遇到的一个烦人的问题是,在配置免密访问权限之前,你必须多次输入目标用户的密码。一种选择是将脚本分为两部分&mdash;&mdash;需要在 boss 系统上运行的命令和需要在 target 系统上运行的命令。

这是“一步到位”版本的脚本:

#!/bin/bash# NOTE: This script requires that you have the password for the remote acct#       in order to set up password-free access using your public key LOC=`hostname`  # the local system from which you want to run commands from                # wo a password # get target system and accountecho -n "target system> "read REMecho -n "target user> "read user # create a key pair if no public key existsif [ ! -f ~/.ssh/id_rsa.pub ]; then  ssh-keygen -t rsafi # ensure a .ssh directory exists in the remote accountecho checking for .ssh directory on remote systemssh $user@$REM "if [ ! -d /home/$user/.ssh ]; then mkdir /home/$user/.ssh; fi" # share the public key (using local hostname)echo copying the public keyscp ~/.ssh/id_rsa.pub $user@$REM:/home/$user/$user-$LOC.pub # put the public key into the proper locationecho adding key to authorized_keysssh $user@$REM "cat /home/$user/$user-$LOC.pub >> /home/$user/.ssh/authorized_keys" # set permissions on authorized_keys and .ssh (might be OK already)echo setting permissionsssh $user@$REM "chmod 600 ~/.ssh/authorized_keys"ssh $user@$REM "chmod 700 ~/.ssh" # try it out -- should NOT ask for a passwordecho testing -- if no password is requested, you are all setssh $user@$REM /bin/hostname

脚本已经配置为在你每次必须输入密码时告诉你它正在做什么。交互看起来是这样的:

$ ./rem_login_setuptarget system> fruitflytarget user> lolachecking for .ssh directory on remote systemlola@fruitfly's password:copying the public keylola@fruitfly's password:id_rsa.pub                                    100%  567   219.1KB/s   00:00adding key to authorized_keyslola@fruitfly's password:setting permissionslola@fruitfly's password:testing -- if no password is requested, you are all setfruitfly

在上面的场景之后,你就可以像这样登录到 lola 的帐户:

$ ssh lola@fruitfly[lola@fruitfly ~]$

一旦设置了免密登录,你就可以不需要键入密码从 boss 系统登录到 target 系统,并且运行任意的 ssh 命令。以这种免密的方式运行并不意味着你的帐户不安全。然而,根据 target 系统的性质,保护你在 boss 系统上的密码可能变得更加重要。

以上是“如何使用公钥/私钥对设定免密的Linux登录方式”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网操作系统频道!

--结束END--

本文标题: 如何使用公钥/私钥对设定免密的Linux登录方式

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用公钥/私钥对设定免密的Linux登录方式
    小编给大家分享一下如何使用公钥/私钥对设定免密的Linux登录方式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用一组公钥/私钥对让你不需要密码登录到远程 Li...
    99+
    2023-06-16
  • 如何使用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
  • VSCode如何使用ssh密钥免密远程登录服务器
    这篇文章主要为大家展示了“VSCode如何使用ssh密钥免密远程登录服务器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VSCode如何使用ssh密钥免密远程登录服务器”这篇文章吧。1. 使用s...
    99+
    2023-06-20
  • VSCode使用ssh密钥免密远程登录服务器的方法
    目录1. 使用ssh密钥免密远程登录服务器2. 配置解释器1. 使用ssh密钥免密远程登录服务器 如果你还未曾成功远程登陆过服务器,下面这篇博客或许对你有帮助 如果你成功远程登陆过服...
    99+
    2024-04-02
  • Termux的ssh使用方式(连接云服务器,ssh密钥登录和Termux互联)
    目录 写在最前1.连接服务器2.为服务器和termux添加ssh免密登录3.使用Termux连接另一台手机上的TermuxSSH的简单配置文件 写在最前  Termux作为强大的终端模...
    99+
    2023-09-15
    linux
  • VSCode如何远程连接Linux教程(密钥的使用)
    目录1、VSCode远程连接步骤2、密钥的使用1、配置密钥2、密钥基本使用3、配置密钥configVSCode在远程连接Linux时,怎么连接,是否需要密钥,以下进行记录讲解。 1、...
    99+
    2024-04-02
  • Linux下如何实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本
    这篇文章主要介绍了Linux下如何实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境:ssh server: 1...
    99+
    2023-06-09
  • linux中ssh如何使用rsa免密码登录
    这篇文章主要讲解了“linux中ssh如何使用rsa免密码登录”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中ssh如何使用rsa免密码登录”吧!A为本地主机(即用于控制其他主机的...
    99+
    2023-06-13
  • 如何使用密钥身份验证在CentOS服务器上实现更安全的SSH登录
    要在CentOS服务器上实现更安全的SSH登录,你可以使用密钥身份验证。以下是一些步骤可以帮助你完成这个过程:1. 生成密钥对:在本...
    99+
    2023-10-10
    CentOS
  • 腾讯云服务器如何使用登录方式设置密码
    腾讯云服务器的登录方式通常需要使用“密码”或“指纹识别”等安全验证方式来设置账户密码。下面是一些具体的步骤和说明: 步骤: 在登录界面,需要先输入登录账号和密码。 选择“指纹识别”验证方式。 如果使用了“密码”或“指纹”等安全验证方式,...
    99+
    2023-10-27
    腾讯 如何使用 密码
  • 腾讯云服务器如何使用登录方式登录账号密码
    首先,登录云服务器的登录方式有两种:使用OAuth2或TouchSession。使用OAuth2登录方式需要使用OAuth2令牌,需要购买OAuth2密钥,需要设置OAuth2用户名和密码。使用TouchSession登录方式则不需要使用O...
    99+
    2023-10-27
    腾讯 如何使用 账号
  • 腾讯云服务器如何使用登录方式设置密码保护
    一、在腾讯云服务器上设置密码保护 登录信息的设置: 登录信息是用户登录腾讯云服务器时需要输入的信息,包括用户名、密码和验证码。这些信息需要保密,以确保登录信息不会被恶意篡改或盗取。可以在用户注册或登录时,提供这些登录信息给腾讯云服务器...
    99+
    2023-10-28
    腾讯 密码保护 如何使用
  • 腾讯云服务器如何使用登录方式登录账号和密码
    1. 登录腾讯云官网 首先,打开浏览器,输入腾讯云官网地址(https://cloud.tencent.com/),进入腾讯云官网。 2. 进入腾讯云控制台 在腾讯云官网首页,点击右上角的“控制台”按钮,进入腾讯云控制台。 3. 选择云服...
    99+
    2023-10-26
    腾讯 如何使用 账号
  • 腾讯云服务器如何使用登录方式登录账号密码错误
    使用第三方登录平台 第三方登录平台是一种非常流行的登录方式,它们通常提供了更多的安全性和方便性,比如说Zoom、Google Drive、SkyDrive等。通过使用第三方登录平台,我们可以在不需要用户输入用户名和密码的情况下,实现账...
    99+
    2023-10-27
    腾讯 如何使用 账号
  • 腾讯云服务器如何使用登录方式登录账号密码忘了
    首先,我们需要了解一些基本的登录密码和账号安全措施。登录密码应该包含用户名、登录邮箱和密码等基本信息,可以使用短、中、长等不同长度的字母和数字组合,并且应该避免使用常见的随机密码,如生日、手机号码等。此外,为了保证账号安全,我们还应该定期更...
    99+
    2023-10-27
    腾讯 如何使用 账号
  • 腾讯云服务器如何使用登录方式设置密码保护手机
    在创建SSH密钥时,我们需要输入当前登录者的公钥信息,并将其保存在本地。如果对方没有公钥,则无法使用该密钥登录服务器。 在绑定密钥之后,我们就可以使用登录方式设置密码保护手机,这样我们就可以通过手机短信验证码的方式来设置和获取手机的 SS...
    99+
    2023-10-27
    腾讯 密码保护 如何使用
  • 腾讯云服务器如何使用登录方式设置密码保护功能
    首先,在腾讯云服务器的控制台上打开“登录/注销”功能。 在登录页面输入您要登录的用户名和密码,点击“登录”按钮。 如果您想要更改默认的登录密码,请选择“更改密码”选项。 在输入框中输入您的新密码,然后点击“确认”按钮。 您的新密码将替换原...
    99+
    2023-10-28
    腾讯 如何使用 保护功能
  • 腾讯云服务器如何使用登录方式设置
    腾讯云服务器通常有三种登录方式,分别是: QQ登录:QQ账号是默认的登录方式,您可以通过手机或电脑登录并进行绑定QQ账号的操作。 微信登录:微信账号是您的微信个人账号,您可以通过手机或电脑登录微信并进行绑定微信账号的操作。 Google...
    99+
    2023-10-26
    腾讯 如何使用 方式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作