云网牛站
所在位置:首页 > Linux安全 > 在Linux系统中设置无密码SSH身份验证的两个简单步骤

在Linux系统中设置无密码SSH身份验证的两个简单步骤

2020-02-20 10:02:36作者:陈自坚稿源:云网牛站

如果要在基于Linux的系统中使许多事情自动化,则首要要求是在Linux系统之间设置无密码SSH身份验证。另外,如果您的环境中有大量服务器,则必须设置无密码SSH身份验证,因为您无法每次都在终端中输入密码,同时也有诸多不便,因为在某些问题上使用多台服务器时,这可能会减慢您的工作速度。不过这只需两个简单的步骤即可轻松完成,在本文中,我们将说明如何在Linux系统上设置无密码SSH登录。

在Linux系统中设置无密码SSH身份验证的两个简单步骤

 

步骤一:在您的本地系统上生成公钥/私钥对(RSA或DSA)

首先我们需要通过运行ssh-keygen命令来生成SSH密钥对(RSA或DSA)。

如果您想设置完全无密码的登录,请不要在提示时输入密码:

$ ssh-keygen

在Linux系统中设置无密码SSH身份验证的两个简单步骤

上面的命令将在~/.ssh目录中创建以下两个文件:

~/.ssh/id_rsa:私钥。

~/.ssh/id_rsa.pub:公钥。

可以使用ls命令查看生成的密钥:

$ ls -lh ~/.ssh/

在Linux系统中设置无密码SSH身份验证的两个简单步骤

默认情况下,它会生成RSA类型的密钥对,如果您想生成DSA类型的密钥对,请在ssh-keygen命令中使用-t选项:

# ssh-keygen -t dsa

默认情况下,密钥的长度为2048位,如果您希望更强的安全性,则可以使用-b选项指定4096位的密钥:

# ssh-keygen -t rsa -b 4096

技术延伸:在Linux系统下更改或更新SSH密钥密码的方法

 

步骤二:将公钥上传到远程Linux服务器

可以使用ssh-copy-id命令将其轻松复制到远程Linux服务器:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub daygeek@192.168.1.7

在Linux系统中设置无密码SSH身份验证的两个简单步骤

公钥将存储在远程用户主目录中的~/.ssh/authorized_keys文件中。

现在该进行测试了,现在,您无需输入密码就可以通过SSH进入远程服务器:

$ ssh daygeek@192.168.1.7

在Linux系统中设置无密码SSH身份验证的两个简单步骤

 

温馨提示:如何在Linux中禁用密码身份验证?

实现这个操作非常的简单。由于我们启用了基于公共密钥的身份验证,因此,我建议您禁用基于密码的身份验证,以防止暴力攻击。

为此,请在远程服务器上的/etc/ssh/sshd_config文件中进行以下更改:

# vi /etc/ssh/sshd_config

PasswordAuthentication no

ChallengeResponseAuthentication no

最后重新启动ssh服务。

对于SysVinit系统:

# service ssh restart

对于systemd系统:

# systemctl restart ssh

至此,操作完成。

 

相关主题

在CentOS、RHEL 8/7上为SSH设置双因素身份验证的方法

精选文章
热门文章