配置SSH以进行无密码访问

SSH

SSH的或“安全外壳”是用于以下目的的安全外壳: 从各种设备到服务器的远程访问,通过隧道传输的通道并受加密保护,从而提供了一种安全性,可以防止或至少非常困难地阻止第三方拦截用户名或密码。 对于* Nix,我们可以通过OpenSSH使用此协议,OpenSSH是在所有Linux发行版和相关平台(例如* BSD)中可用的一组客户端-服务器解决方案。

现在,如果SSH为我们提供了出色的安全性,为什么我们要在不需要输入密码的情况下使用它? 可能有多种原因,但作为生成器而通常脱颖而出的一个原因是需要通过脚本远程登录并执行超级用户任务,并且众所周知,不建议将该数据放入任何脚本中。 为了解决这个问题,我们将看到 如何生成SSH密钥以便无需密码即可远程登录.

这需要我们 生成公钥和私钥:第一个将存储在我们将要访问的服务器上,顾名思义,我们可以发送或共享它;第二个将存储在我们要从中访问的设备(计算机,智能手机,平板电脑)上访问所述服务器,并且必须是 保持非常小心 并且仅由我们或我们信任的人使用。

由于上一段中提到的内容,重要的是要评论说,这种类型的解决方案在维护我们要从中进入服务器的设备时需要承担非常大的责任,也就是说,任何有权访问他们无需知道密码就可以输入密码,这是很大的安全隐患。 澄清了这一点之后,让我们看看如何开始,为此,第一件事是在服务器上安装了SSH守护程序:

#apt-get install openssh-server

现在,我们必须在用户目录中创建.ssh目录:

#mkdir -p $ HOME / .ssh

#chmod 0700 $ HOME / .ssh

#触摸$ HOME / .ssh / authorized_keys

我们编辑文件 的/ etc / SSH / sshd_config中 并且我们验证以下几行是正确的:

PubkeyAuthentication是

AuthorizedKeysFile%h / .ssh / authorized_keys

现在我们去客户端执行:

ssh-keygen -t rsa

我们将被告知正在创建密钥,并且将要求我们输入存储密钥的文件(默认情况下,该文件位于我们的主目录中的/.ssh/id_rsa文件夹中)。 由于该位置可以为我们提供最佳服务,因此我们可以按Enter键,然后再次按Enter键两次 输入密码 记住,因为我们将在不输入任何数据的情况下进行远程输入,因此我们也不需要任何短语。

现在我们有了公钥,我们必须与将要连接到的那些计算机共享它。 假设我们正在谈论的服务器的地址为192.168.1.100,您要做的是:

ssh-copy-id -i $ HOME / .ssh / id_rsa.pub root@192.168.1.100

复制后,我们将被邀请 执行远程登录以测试密钥,并且在这种情况下必须考虑到 这是我们将用来访问服务器的帐户,因此,如果我们要与其他用户一起使用它,则必须为将要用于执行该操作的用户帐户修改root。 通过SSH访问.

现在,我们只需要重新启动SSH服务器,即可使用新配置:

#/etc/init.d/ssh重新启动

从现在开始,如果我们要访问第二台服务器并且无需输入密码就可以访问它,我们只需要向其发送公钥即可,只需重复最后一步,并根据需要更改用户和IP地址即可:

ssh-copy-id -i $ HOME / .ssh / id_rsa.pub admin@192.168.1.228


发表您的评论

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

*

*

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

  1.   干燥剂

    感谢您提供的信息,但是什么也没有。
    我一直在整天都在尝试,并且总是要求输入密码。
    不久前,我尝试了一下,出于同样的原因,我将其视为不可能。
    我在Macbook上创建密钥,然后将其复制到〜/ .ssh / authorizedKeys中的树莓派中
    我使用公共身份验证配置sshd.conf,并验证密钥的目录是否正好位于密钥所在的位置。 我重新启动树莓,并且在连接时再次要求我输入密码
    什么会失败?

    1.    干燥剂

      经过数小时的尝试,我发现创建的用户永远无法使用它,但是默认用户“ ubuntu”却可以首次使用。
      为什么会发生这种情况的任何澄清?
      Saludosÿ谢谢