SSH(Secure SHELL)是一种开源且最受信任的网络协议,用于登录远程Linux服务器以执行命令和程序。此外,SSH还可以通过SCP(安全复制)命令和Rsync命令将文件从一台计算机传输到另一台计算机。
在本文中,小编将简单介绍如何在基于RHEL的Linux发行版(CentOS、例如Fedora、Rocky Linux和AlmaLinux)以及基于Debian的发行版(例如Ubuntu和Mint)上设置无密码登录,从而在使用SSH密钥连接到远程服务器时无需输入密码。
据了解,使用无密码登录SSH 密钥将增加两台Linux服务器之间的信任,以便轻松进行文件同步或传输。
安装环境
SSH 客户端:192.168.0.12 (Fedora 34系统) SSH 远程主机:192.168.0.11 (CentOS 8系统)
如果你正在管理多个Linux远程服务器,那么SSH无密码登录是自动执行任务的最佳方法之一,例如使用脚本自动备份、使用 SCP命令同步文件和远程命令执行等。
在本文中,小编将设置从服务器192.168.0.12以用户tecmint到服务器192.168.0.11以用户sheena的SSH无密码自动登录。
第 1 步:在 (192.168.0.12) 服务器上创建SSH-Keygen密钥身份验证
首先使用用户tecmint登录到服务器192.168.0.12服务器并使用以下命令生成一对公钥。
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/tecmint/.ssh/id_rsa): [Press enter key] Created directory '/home/tecmint/.ssh'. Enter passphrase (empty for no passphrase): [Press enter key] Enter same passphrase again: [Press enter key] Your identification has been saved in /home/tecmint/.ssh/id_rsa. Your public key has been saved in /home/tecmint/.ssh/id_rsa.pub. The key fingerprint is: 5f:ad:40:00:8a:d1:9b:99:b3:b0:f8:08:99:c3:ed:d3 tecmint@tecmint.com The key's randomart image is: +--[ RSA 2048]----+ | ..oooE.++| | o. o.o | | .. . | | o . . o| | S . . + | | . . . o| | . o o ..| | + + | | +. | +-----------------+
第 2 步:将SSH密钥上传到(192.168.0.11)服务器
使用SSH从192.168.0.12服务器上传新生成的公钥(id_rsa.pub)到服务器192.168.0.11下的sheena‘s .ssh目录,并命名为authorized_keys文件。
$ ssh-copy-id sheena@192.168.0.11
第 3 步:从192.168.0.12服务器测试SSH无密码登录
从现在开始,你可以在没有密码的情况下以tecmint用户身份从服务器192.168.0.12以nsheae用户身份登录192.168.0.11。
$ ssh sheena@192.168.0.11
总结
在本文中,简单介绍了使用SSH密钥设置SSH无密码登录的简单步骤,设置过程相对来说比较简单,仅供参考。
其实在两台和多台Linux服务器之间进行复制文件、数据备份等操作时,使用SSH无密码登录可以说是非常的方便,而且也比较省时间,感兴趣的朋友可以去试试。