文章目录
背景
本文已收录于PHP全栈系列专栏:PHP面试专区。
计划将全覆盖PHP开发领域所有的面试题,对标资深工程师/架构师序列
,欢迎大家提前关注锁定。
在日常运维工作中,频繁地使用SSH登录到Linux服务器是非常常见的事情。默认情况下,我们需要输入用户名和密码才能与服务器建立连接。然而,为了提高工作效率和安全性,我们可以配置免密登录,即无需再输入密码就可以登录到服务器。
本文将介绍如何配置免密登录Linux服务器,以便您可以更加方便地进行远程操作。
一、登录Linux有哪些方式
登录Linux系统有以下几种方式:
-
文本登录:使用终端或控制台登录,需要输入用户名和密码。
-
SSH登录:通过Secure Shell(SSH)协议远程登录,需要使用SSH客户端连接到Linux服务器,并提供正确的用户名和密码或使用SSH密钥对进行身份验证。
-
远程桌面登录:使用远程桌面协议(如VNC、XDMCP等)通过图形用户界面(GUI)进行登录。
-
串口登录:通过串口连接到Linux服务器,使用串口终端程序进行登录。
-
光纤通道登录:使用光纤通道协议(如FCoE、iSCSI等)连接到存储设备或网络设备,登录到Linux系统。
-
控制台登录:直接连接到计算机的物理控制台,例如使用键盘和显示器登录。
需要注意的是,不同的Linux发行版可能支持或默认启用不同的登录方式。
二、生成密钥对
要实现免密登录,我们首先需要生成一对公私钥。我们可以使用OpenSSH提供的工具来完成这个任务。
2.1 打开终端并登录到客户端机器
打开终端,输入以下命令登录到您的客户端机器:
ssh username@client_ip
请将username
替换为您的用户名,client_ip
替换为客户端机器的IP地址或主机名。
2.2 生成密钥对
在终端中,运行以下命令生成密钥对:
ssh-keygen
该命令会询问您要将密钥对保存在哪个目录中,默认为~/.ssh/id_rsa
。按Enter
键接受默认值。
接下来,系统会要求您输入一个密码。如果您希望完全不需要密码访问服务器,请直接按两次Enter
键跳过此步骤。
成功生成密钥对后,终端会显示您的公钥的指纹信息以及私钥的位置。请确保不要丢失私钥,否则将无法登录服务器。
三、 配置服务器端
接下来,我们需要将客户端的公钥添加到服务器上,以便服务器能够验证客户端的身份。
3.1 登录到服务器
在终端中,输入以下命令登录到您的服务器:
ssh username@server_ip
请将username
替换为您的服务器用户名,server_ip
替换为服务器的IP地址或主机名。
3.2 添加公钥
在服务器上,运行以下命令将您的公钥添加到服务器的authorized_keys
文件中:
mkdir -p ~/.ssh
echo "公钥" >> ~/.ssh/authorized_keys
请将公钥
替换为您在生成密钥对时得到的公钥内容。您可以使用以下命令将公钥复制到剪贴板:
cat ~/.ssh/id_rsa.pub | pbcopy
将公钥粘贴到终端中,并按Enter
键。
3.3 设置权限
为了确保安全性,我们需要设置正确的权限来保护authorized_keys
文件。
在终端中运行以下命令设置权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
四、免密登录测试
现在,您已经完成了免密登录的配置。让我们测试一下是否成功。
在终端中,尝试使用以下命令登录到服务器:
ssh username@server_ip
如果一切正常,您将无需输入密码即可成功登录到服务器。
总结
通过配置免密登录,我们可以提高工作效率,减少重复的密码输入。然而,为了确保安全性,请务必妥善保管私钥,并采取其他安全措施,如禁用root登录和使用防火墙等。
希望本文能够帮助您成功地配置免密登录Linux服务器。如果您有任何问题或疑问,欢迎在下方留言。