首页 帮助中心 新加坡高防服务器 Linux SSH免密登录设置教程
Linux SSH免密登录设置教程
时间 : 2024-12-24 10:43:10 编辑 : 华纳云 阅读量 : 729

SSH是开源且受信任的网络协议,可登录远程服务器执行命令和程序外,还支持使用SCP命令和rsync命令利用网络达成服务器之间的文件传输。下面华纳云将同大家分享如何在基于 RHEL 的 Linux 发行版(例如CentOS、Fedora、Rocky Linux和AlmaLinux)以及基于 Debian 的发行版(例如Ubuntu和Mint)上设置无密码登录,用ssh 密钥连接到远程Linux服务器而无需输入密码。

SSH密钥实现免密登录增加两台linux服务器之间信任,便于实现文件同步或传输。在面对多个linux远程服务器的使用时,SSH免密登录是自动执行任务的最佳实践之一,如自动备份脚本、用SCP命令同步文件及远程命令执行等。

首先需要准备两台linux服务器,如本文使用的SSH客户端192.168.1.33(Fedora 36)/SSH 远程主机:192.168.0.13(CentOS 8)。比如我们要设置从客户端用客户身份进行免密自动登录到远程主机上。

先在客户端服务器上创建身份验证SSH密钥。用用户tecmint登录服务器192.168.1.33,并使用以下命令生成一对公钥。

$ 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    ..|

|       + +       |

|        +.       |

+-----------------+

从服务器192.168.1.33使用 SSH,并将服务器192.168.0.13上新生成的公钥(id_rsa.pub)上传到sheena的.ssh目录下,文件名为authorized_keys。

$ ssh-copy-id sheena@192.168.0.13

确保在远程服务器上的~/.ssh目录和~/.ssh/authorized_keys文件上设置了正确的权限。

$ ssh sheena@192.168.0.13 “chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys”

为提高安全性,还可以禁用远程服务器上密码验证,只允许用SSH密钥验证:

$ sudo nano /etc/ssh/sshd_config

$ sudo vi /etc/ssh/sshd_config

找到含PasswordAuthentication的行并将其设置为no。

PasswordAuthentication no

再保存文件并重新启动SSH服务:

$ sudo systemctl restart sshd

从现在开始,以sheena用户的身份从服务器192.168.1.33以tecmint用户的身份无需密码登录到192.168.0.13 。

$ ssh sheena@192.168.0.13

无密码身份验证具有安全、可靠、易于使用优势,主要因为其通过消除密码管理实践减少了攻击媒介。

华纳云 推荐文章
香港云服务器ssh一直连接不上怎么办 服务器如何进行ssh的使用与配置? Ubuntu系统上生成SSH密钥的步骤 Pssh如何实现多台Linux远程服务器上执行相同命令 如何通过SSH实现TCP/IP隧道(端口转发)? 断开连接后保持远程SSH会话和进程运行的常见方法 OpenSSH服务器最佳安全实践包含哪些 Linux中阻止对特定IP和网络范围的SSH和FTP访问 Greenplum启动时 SSH22端口连接失败 端口转发和SSH隧道的含义详解及使用方法
活动
客服咨询
7*24小时技术支持
技术支持
渠道支持