如何在Linux中设置SSH无密码登录(使用SSH密钥)

在Linux中设置SSH无密码登录。 SSH用于远程登录到Linux远程服务器。在Linux中使用RSA / DSA SSH密钥设置SSH无密码登录

SSH(Secure Shell 被广泛用于远程登录到Linux服务器。当我们使用ssh登录到远程系统,它会提示输入密码,然后只允许我们登录到服务器。有些时候,我们需要配置应用程序或脚本(主要是shell脚本)自动执行某些任务,我们需要ssh远程登录系统后做这些事。但是,如果我们没有配置基于密钥的SSH,每次脚本会提示我们手动输入密码运行。为了解决这个问题,我们有替代使用公钥/私钥的概念。在远程服务器允许其它系统通过ssh的基础Key。 本文将帮助你在Linux系统中安装SSH无密码登录SSH(RSA / DSA)密钥对。

第1步:生成SSH密钥对

首先你需要生成密钥对(RSA或DSA),您可以使用“t”命令行指定选项RSA或DSA密钥。如果我们不通过-t参数,它会创建默认的RSA密钥。
# ssh-keygen -t rsa
上面的命令将在 ~/.ssh目录两个文件如下。
  1. ~/.ssh/id_rsa  [私钥]
  2. ~/.ssh /id_rsa.pub  [公钥]

第2步:复制公钥到远程系统

让我们复制我们的系统生成的公钥到远程计算机的 ~/.ssh/authorized_key 文件里。 我们可以做到这一点,手动或使用ssh-copy-id命令命令行工具。
# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.103
示例输出:
21
root@192.168.1.103's password:
Now try logging into the machine, with "ssh '192.168.1.103'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.
它会提示输入远程系统的密码。输入远程计算机的密码,然后按Enter。

第3步:验证SSH无密码

现在我们已经全部做完,简单的使用以下命令ssh到远程系统。你会登录到远程系统,而无需输入密码。
# ssh root@192.168.1.103
上面的命令不会提示输入密码登录。如果在ssh命令任何情况下有密码提示,这意味着你的设置不正确配置,并再次尝试重新所有步骤。 感谢您阅读这篇文章,我希望它会帮助你。