仅需3个步骤即可配置无密码的SSH连接

你好,

在这里,您将看到如何通过以下方式远程连接到PC SSH的 只是第一次输入密码,然后即使我们重新启动两台计算机,也不会再次要求输入密码。

但是,让我们首先看一下它的简要说明 SSH的:

SSH的 它是一种协议,是两台计算机之间的通信方式。 它使我们可以远程管理团队。 当我们通过SSH访问另一台计算机时,在该终端中输入的命令将在另一台计算机上执行,这样我们便可以对其进行管理/控制。

传输的一切 SSH的,它是经过加密的,并且具有相当好的安全性。

现在,我们将看到如何通过三步配置 PC#1 访问 PC#2 无需输入密码:

我们有以下情况:

PC#1-» 您想连接到 PC#2,而不必每次尝试连接到另一台PC时都输入密码。

PC#2-» 您已经安装了SSH服务器。 这是一个 PC#1 它将连接,并且无需输入密码即可进行连接。 在此PC上有一个名为 .

让我们开始...

1. En PC#1 我们写以下内容:

  • ssh-keygen -b 4096 -t rsa

这将生成一个公共密钥。 为了避免与“公钥和私钥”混淆,我将对其进行简单说明。

假设您的口袋里有两把房子的钥匙,一把是由于您在一起生活而给女友的,另一把是一个人,您不会把它给任何人。 好吧,您给女友提供的钥匙可以让她不用告诉您,也无需征得您的允许就可以进入您的房子,对吗? 这是一个公共密钥,是一种“密钥”,它使一台PC无需访问您的许可即可访问另一台PC(即,无需输入用户名+密码)

当他们输入该命令时,将显示:

2. 只需按 [输入],一秒钟后,我们再次按 [输入],一秒钟后,我们再按一次 [输入]。 我的意思是,我们会按 [输入] 一共三(3)次,我们只按它...我们什么都不写 🙂

当我们这样做时,将出现类似于以下内容的内容:

准备好了,我们已经有了公钥...现在我们需要将其提供给我们想要的任何人(像示例一样,将其提供给我们的女友哈哈)

我们想要的是 PC#1 连接到 PC#2,已经在 PC#1 我们做了以上所有工作, PC#2 我们什么也没做。 好, PC#2 例如具有IP地址 10.10.0.5.

3. 我们放入 PC#1 以下内容:

  • ssh-copy-id root@10.10.0.5

这只是给您的公钥 PC#1 a PC#2,也就是说, PC#2 的公钥 PC#1PC#1 你知道他拥有私钥; 没有提供给任何人的密钥。 重要的是不要与用户犯错,也就是说,如果用户““它在PC#2中不存在,将给我们带来一个错误。重要的是要弄清楚我们将为此使用的用户,此外,我们用来配置无密码访问的用户将与将来将要访问的用户相同。 完成后,它应如下所示:

在上一步中,他们必须将用户密码输入 PC#2.

瞧...一切都配置好了 ????

同样,在终端机中似乎也可以看到,让我们测试一下一切是否真的可以100%正常运行。 为了测试,我们将:

  • SSH根@ 10.10.0.5

如果他们也想访问另一台计算机而不总是输入密码(PC#3 例如),我们只需为其提供公钥即可,也就是说,一旦完成此步骤 #1 y #2 我们将不再需要这样做。 如果我们要访问 PC#3 例如,通过IP 10.10.99.156 我们只是把:

  • SSH根@ 10.10.99.156

到目前为止,本教程。

说明当我们谈论SSH时的安全级别确实很高,我用一些比喻(向女友提供密钥的步骤)来解释这个隐喻可能不是最合适的哈哈,因为我们的女友可以将密钥提供给其他人。 当我们谈论SSH时,当我们尝试访问计算机时,安全性原理很容易解释(PC#1)检查PC#2中是否有我们计算机的公共密钥(在这种情况下,是因为我们以这种方式配置),然后,如果有一个公共密钥,这很简单,请检查该公共密钥是否与我们的私有密钥相同(即我们没有将其提供给任何人)。 如果密钥相同,则允许我们访问,否则,作为安全措施,它不允许我们远程访问另一台计算机。

所以现在您知道了……给我们的女友房子钥匙不是最安全的事情,但是共享钥匙并通过SSH远程访问另一台计算机是安全的 ^ _ ^

如有疑问或疑问,投诉或建议,请通知我。

所有的问候。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   elav <°Linux

    我真的不明白您对安全性如此偏执怎么会犯这样的错误。 如果在步骤中说:

    Enter passphrase (empty for no passphrase)

    我们什么也不写,如果用户设法访问我们的PC并打开一个终端,我们会迷路,因为它会自动执行:

    ssh root@10.10.0.5

    无需输入密码即可进入。

    1.    KZKG ^ Gaara <°Linux

      如果有人可以使用我的笔记本电脑,是的,他们无需输入密码即可访问2号PC,但是,正如您所说,我对安全性抱有偏执,您真的认为获得对我的笔记本电脑的访问权是一件好事吗?很简单? 哈哈。

      当我总是起床时,我总是锁定屏幕,否则在笔记本电脑的鼠标或键盘上没有任何活动30秒后,它仍会锁定😉

      1.    耶稣

        如果有人偷了您的笔记本电脑,那么无论会话被阻止了多少,使用可从USB启动的Linux只需5分钟即可访问文件。 访问文件后,由于私钥不受保护,您可以直接使用它,也可以更好地复制它并从家里舒适地访问任何服务器。 实际上,该过程是如此之快,以至于您甚至不必知道。 只需5分钟,您便可以去洗手间或其他任何地方。

        安全的方法是将密码放在私钥上,然后使用ssh-agent,以便它记住整个会话的密码(仅ssh-add)。 这样,它只会在第一次时要求输入密码,并且在实践中,除了防止盗窃或入侵之外,您还会有90%的时间没有密码进行连接。

        1.    x11泰特11x

          访问文件很简单吗?您听说过全盘加密吗? (luks + cryptsetup)

          1.    耶稣

            是的,当然,如果您对整个磁盘进行了加密,那是另一回事了,但是90%的用户不这样做,因为他们不知道如何做,而且在许多情况下甚至无法补偿他们。 相比之下,每个人都可以将未加密的密码或未受保护的私钥保存到磁盘,这是一个很好的做法。

            将未受保护的私钥保存在加密的磁盘上就像将车停在停车场,让车门敞开着,而是雇了一名杜宾犬来保护它。 是的,它可以工作,但是直接锁定它更容易,更有效。

    2.    昌乐

      MMm虽然可以创建虚拟接口,分配IP并使用该虚拟IP进行连接,但对口交操作却无济于事,因此,即使他们删除了密钥,他们也将无法找到机器,因为该密钥仅适用于特定IP。 这也取决于他们的需求,正如同志所描述的那样,它对我而言非常理想,我家中有一台私人服务器,因为已配置了VPN,因此无需提高安全性。

  2.   萨姆克霍

    这是否可以应用于必须连接多个* NIX的Windows终端?
    我有腻子,但我也可以使用Securecrt(现在已编写脚本)

    1.    KZKG ^ Gaara <°Linux

      我确信在Windows终端(cmd)中不会,在那里将不可能。
      但是,如果您使用腻子,可以尝试一下,它可以工作。

      问候并欢迎来到我们的网站😀

    2.    erm3nda

      Putty已在其他命令中接受-pw参数。 (例如:-pw12345)
      实际上,超级腻子比普通腻子要酷。 (这是腻子的框架)

      因此,您不必放手。

  3.   gi木

    感谢您的帖子,非常有用。 一切登录SSH有点无聊。

    1.    KZKG ^ Gaara

      您好,非常感谢您的光临和评论🙂
      没什么朋友,很高兴知道这是有帮助的...如果我们能以任何其他方式帮助您,我们将非常高兴😉

      问候和欢迎来到该网站。

      1.    阿德里安

        我需要像从终端一样从Linux连接到windonws PC

  4.   罗伯托

    太好了..这确实激发了我看到这种类型的教程的兴趣,这让我希望也能贡献出我已经简化的经验,以便社区可以利用它们。 真的感谢萨尔瓦多。

  5.   何塞·格雷戈里奥(Jose Gregorio)

    我正在使用具有ubuntu的计算机连接到具有debian的计算机,但它给我一个错误,它无法验证,因此要求我输入密码..为什么会发生这种情况? ssh-keygen的版本会有所不同还是发生什么情况?

    1.    KZKG ^ Gaara

      将错误放到这里,它可以为您提供更好的帮助😉
      另外,您可以尝试将其放在终端中:
      sudo mv $HOME/.ssh/known_hosts /opt/

      这是清除您已有的连接(连接历史记录)SSH。

  6.   基农

    而且,如果我想对多个服务器使用相同的公共密钥,是否可以这样做,还是必须为要访问的每个服务器创建一个密钥? 无论如何,我都会尝试一下,但是要在一些无用的服务器上尝试,以免破坏有用的东西。

    谢谢并恭祝安康。

    1.    KZKG ^ Gaara

      正如我在笔记本电脑上所做的那样,每个服务器的密钥都是不同的,实际上,我认为不可能对多个服务器使用相同的密钥...因为每个服务器的ID是唯一的,例如指纹like

      问候

      1.    基农

        你好,沙之主。 我一直在阅读密钥,发现这对密钥(公共密钥和专用密钥)服务于服务器-客户端发送和接收挑战,从而相互识别,因此与您用来访问服务器的密码无关。服务器,后者用于将公共密钥“粘贴”到服务器的受信任密钥中。 因此,您可以根据需要随意使用它。

        我不知道自己是否在解释自己,但是开玩笑的是,要能够在其他服务器上使用您的密钥对,在按照教程进行操作之后,您只需要执行以下操作即可:

        ssh 复制 ID other.user@otra.ip
        输入该另一台服务器的密码

        准备好了
        问候

  7.   劳尔

    您好,感谢您的指导,它是唯一对我有所帮助的人。 现在,我想在另一台计算机上执行此操作,我得到以下信息:

    $ssh-copy-id -p 4000 lm11@148.218.32.91

    错误的端口'umask 077; 测试-d〜/ .ssh || mkdir〜/ .ssh; 猫>>〜/ .ssh / authorized_keys'

    谢谢你的帮助。

  8.   德语

    我做了您告诉我们的事情,但是一直要求我输入密码。 我弄清楚了我在两个linux red hat服务器之间建立的连接……还有什么呢?

    我已经看过了/ etc / ssh / sshd_config

    我已经重新启动了两个服务器

    PC2 = Linux Red Hat 6.4
    PC2 = Linux Red Hat 5.1

    1.    泽维尔

      必须正确配置ssh服务(PC2上的/ etc / ssh / sshd_config文件),它才能正常工作。

  9.   德语

    更正…

    PC1 = Centos 6.4
    PC2 = Red Hat 5.1

  10.   格里瓦斯

    同事们,您好,我需要在1个Linux Centos 5.3服务器和Unix Sco5.7之间建立信任关系,但是我遇到的问题是,在执行将密钥从Linux复制到Unix的第3步时,会收到消息/ usr / bin / ssh-copy-id:错误:找不到身份,为什么?

    谢谢

  11.   名字

    我已逐步按照本教程进行操作。 它没有给我任何错误,但是最终,当我从PC1连接到PC2时,每次连接时,我一直在询问我root密码。

    有谁认为这可能是什么?

  12.   罗伯

    似乎在生成密钥后,您必须执行ssh-add,以便身份验证代理可以使用它。

  13.   安德里亚·科洛德罗(Andrea Colodro)

    当我删除访问密钥时,它无法识别我被黑客入侵的任何内容,帮助,它无法输入任何内容

  14.   乔丹·阿科斯塔

    非常感谢,它运行得非常完美

  15.   迷你迷你

    非常感谢您的指导! 这很容易并且非常方便,当您的服务器在外面走动而不必输入密钥从而使事情自动化时,😀

  16.   erm3nda

    谢谢。

    我不知道ssh-copy-id的使用,它是非常自动的。
    事实是,我已经准备好写密码了,所以我要做的是使用默认密码来保存密码,该密码在会话期间会得到维护。

    我不介意每次打开PC时都编写一次,每次断开连接或诸如此类的事情时都必须放入纸卷

    SSH否柔术!

  17.   丽兹

    你好

    很好的教程...但是如果我想传递信息? 我该怎么做?

  18.   迭戈·冈萨雷斯

    您好,您的贡献非常有趣,但是我对类似的话题有一些疑问

  19.   卡洛斯·埃尔南德斯

    嘿。

    请尝试上述步骤,但是当尝试将密钥复制到服务器2(PC2)时,它告诉我该命令不存在。

    bash:ssh-copy-id:找不到命令

    我可以手动复制密钥吗?

  20.   杂乱无章

    优秀的!! 我在寻找一个简单且完美的解释

    谢谢!

  21.   亚鲁马尔

    杰出贡献。
    非常感谢您,它对我有很大帮助。

  22.   彼得

    嗨,我想知道是否有一种方法可以执行此ssh-copy-id命令。 由于我安装了Windows的Open ssh,因此ssh在DOS中可以为我工作,但它没有此ssh-copy-id命令。 我想知道如何将此公钥发送到另一个linux服务器(linux服务器)。 非常感谢。

  23.   彼得

    你好我需要在Linux服务器和Windows计算机之间建立信任关系。 安装适用于Windows的SSH,它对我有用。 但是此ssh-copy-id命令在此工具中不可用。

    他们知道不使用ssh-copy-id的其他方法。

    非常感谢您的评论。

  24.   安德里尼奥

    但是,这样做的问题是能够在没有密码的情况下进行连接,如果我们输入密码,它会要求我们提供该连接的连接,这不是此操作的目的。

  25.   安德里尼奥

    这对我的计算机fp模块非常有用,谢谢🙂

  26.   维森特

    格拉西亚斯!

  27.   X人

    有些人担心必须输入密码(密码)会很烦,为此,正如他们在上面所说的那样,它是“ user-Agent”,而且我还为它配置了Keepass及其自动类型功能,所以我只是我调用终端,并使用它们已经配置好的键的组合,对于每个请求,我也具有“别名”,并且一切都很容易。

    好教程。

    玩得很开心 !!

  28.   费利佩·奥亚斯(Felipe Oyarce)

    很好的信息🙂,但我有一个问题...

    我有PC10,这是我保存信息的地方,信息从pc1-pc2-pc3发送到PC10,如何使pc1,pc和pc3使用相同的密钥来访问PC10而没有密钥。

    干杯…

  29.   内斯特

    我如何在不将ssh ip @ hosts放到machine1的bash的情况下,在machine2的bash中列出machine1的内容。 我不知道我是否了解xD

  30.   马丁

    自从本出版物出版以来已有10年了,我会在需要时不断访问它。 像这里的其他教程一样,它们经受了时间的考验。 感谢致敬!