阅读 74

如何在Linux中设置ssh无密码登录

ssh用于远程登录 Linux 服务器,当我们使用ssh命令登录远程服务器时,必须输入对方的密码,才能登录成功。但是如果我们经常需要远程登录大量的服务器,每次登录输入密码就会非常繁琐,费时又费力。

我们知道ssh除了支持基于密码的身份验证方式,还支持基于公钥的身份验证方式,接下来就介绍一下如何设置基于SSH密钥的身份验证在不输入密码的情况下登录到远程服务器。

设置ssh无密码登录

要在Linux中设置无密码ssh登录,需要生成公共身份验证密钥并将其添加到远程服务器的~/.ssh/authorized_keys文件即可。

检查现有的SSH密钥对

在生成新的SSH密钥对之前,可以通过一下命令检查一下自己的服务器上是否已经存在密钥:

ls -al ~/.ssh/id_*.pub 复制代码

如果显示No such file or directory说明之前没有生成密钥,继续执行下面的命令生成新密钥:

ssh-keygen -t rsa -C "tigeriaf" 复制代码

以下命令将生成一个新的ssh密钥对,并将"tigeriaf"作为注释。

image.png

将会生成密钥文件id_rsa和私钥文件id_rsa.pub(如果用dsa则生成id_dsaid_dsa.pub)。

关于ssh-keygen的使用方法以及选项参数可以,查看之前的文章:Linux ssh-keygen 命令详解。

复制公钥到远程服务器

上面已经生成了ssh密钥对,要实现在没有密码的情况下登录远程服务器,还需要将公钥复制远程服务器。

使用的命令是ssh-copy-id。在本地机器执行:

ssh-copy-id username@ip_address 复制代码

输入远程服务器用户的密码,通过身份验证后,公钥将附加到远程服务器用户的authorized_keys文件中。

image.png

使用ssh密钥登录服务器

上面的步骤都完成后,就能够通过ssh无密码登录到远程服务器了。

ssh username@ip_address 复制代码



作者:tigeriaf
链接:https://juejin.cn/post/7026512562061590559


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐