两台linux服务器如何设置免密
-
两台Linux服务器之间实现免密登录的设置步骤如下:
步骤1:生成公钥和私钥
在本地Linux服务器上,打开终端,使用以下命令生成公钥和私钥:ssh-keygen -t rsa按照提示,选择保存密钥的位置和输入密码(可以选择不设置密码),然后生成公钥
id_rsa.pub和私钥id_rsa。步骤2:将公钥复制到远程服务器
使用以下命令将本地生成的公钥复制到远程服务器:ssh-copy-id username@remote_ip其中,
username为远程服务器的用户名,remote_ip为远程服务器的IP地址。执行命令后,会要求输入远程服务器的密码。输入密码后,本地公钥会自动复制到远程服务器的~/.ssh/authorized_keys文件中。步骤3:测试免密登录
使用以下命令测试免密登录:ssh username@remote_ip不再需要输入密码,就可以登录到远程服务器。
步骤4:设置SSH配置文件
为了确保以后登录时仍然免密,可以对SSH配置文件进行设置。打开终端,编辑SSH配置文件:sudo vi /etc/ssh/sshd_config找到并修改以下两个配置项为以下内容:
PasswordAuthentication no PubkeyAuthentication yes保存修改,并重新启动SSH服务:
sudo systemctl restart sshd这样,在使用SSH登录时将只允许公钥认证,不再需要密码。
综上所述,通过生成公钥和私钥,并将公钥复制到远程服务器,设置SSH配置文件,即可实现两台Linux服务器间的免密登录。
1年前 -
在两台Linux服务器上设置免密登录有多种方法。下面将介绍其中两种常用的方法:使用密钥对和使用SSH代理。
方法一:使用密钥对
- 生成密钥对
在本地计算机上打开终端,输入以下命令生成密钥对:
ssh-keygen -t rsa按照提示操作,可以选择默认的文件名和密码,也可以自定义。这将在~/.ssh目录下生成公钥和私钥文件。
- 将公钥复制到目标服务器
使用以下命令将公钥复制到目标服务器:
ssh-copy-id user@remote_server其中,user是目标服务器上的用户名,remote_server是目标服务器的IP地址或域名。输入命令后,会要求输入目标服务器的密码。
- 验证设置
尝试使用SSH连接到目标服务器:
ssh user@remote_server如果不需要输入密码直接登录成功,则说明免密设置成功。
方法二:使用SSH代理
- 在本地设置SSH代理
在本地计算机上打开终端,输入以下命令启动SSH代理:
eval `ssh-agent`然后,添加私钥到代理:
ssh-add ~/.ssh/id_rsa需要注意的是,如果私钥文件的名字或路径不是默认的,需要将命令中的“~/.ssh/id_rsa”替换成实际的私钥文件路径。
- 将公钥添加到目标服务器
登录到目标服务器,将本地计算机的公钥添加到目标服务器的认证文件中,可以使用以下命令:
ssh-add -L >> ~/.ssh/authorized_keys- 验证设置
尝试使用SSH连接到目标服务器:
ssh user@remote_server如果不需要输入密码直接登录成功,则说明免密设置成功。
总结:
以上是两种常用的在两台Linux服务器上设置免密登录的方法。通过生成密钥对或使用SSH代理,可以实现免去每次登录需要输入密码的繁琐,提高登录的便捷性和效率。1年前 - 生成密钥对
-
要设置两台Linux服务器之间的免密登录,需要遵循以下步骤:
- 生成SSH密钥对:在第一台服务器上生成SSH密钥对(公钥和私钥)。可使用
ssh-keygen命令生成,指定保存公钥和私钥的路径。例如:ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa。在生成过程中会提示输入密钥的密码,可以选择设置密码或留空。 - 将公钥复制到目标服务器:使用
ssh-copy-id命令将公钥复制到第二台服务器上。例如:ssh-copy-id user@second_server_ip。执行该命令后,会提示输入目标服务器的密码。 - 验证免密登录:执行
ssh user@second_server_ip命令,如果成功登录目标服务器而无需输入密码,则表示免密登录设置成功。
下面将详细介绍免密登录的设置步骤和注意事项。
步骤一:生成SSH密钥对
-
登录第一台服务器,在终端中执行以下命令生成SSH密钥对:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa其中,
-t选项指定密钥类型为RSA,-b选项指定密钥位数为4096,-f选项指定密钥的保存路径为~/.ssh/id_rsa(可根据实际需要修改保存路径)。在执行命令后,会提示选择密钥的密码。可以选择设置密码,也可以留空。密码用于保护私钥文件,如不需要密码就留空。
生成密钥对的过程中会有类似如下的输出:
Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): [输入密钥的密码,或者直接回车留空] Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub.这表示密钥对已成功生成。私钥保存在
~/.ssh/id_rsa文件中,公钥保存在~/.ssh/id_rsa.pub文件中。 -
重复以上步骤,在第二台服务器上生成SSH密钥对。
步骤二:复制公钥到目标服务器
-
从第一台服务器上复制公钥内容。可以使用以下命令打印公钥内容:
cat ~/.ssh/id_rsa.pub执行命令后,终端会输出公钥的内容。将输出结果复制到剪贴板。
-
登录第二台服务器,在终端中执行以下命令,将公钥内容添加到目标服务器的
authorized_keys文件中:echo [公钥内容] >> ~/.ssh/authorized_keys将
[公钥内容]替换为从第一台服务器复制的公钥内容。执行命令后,公钥会被追加到~/.ssh/authorized_keys文件中。注意:如果
~/.ssh/authorized_keys文件不存在,可以使用以下命令创建:mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys
步骤三:验证免密登录
-
在第一台服务器上执行以下命令,尝试登录到第二台服务器:
ssh user@second_server_ip其中,
user是目标服务器上的用户名,second_server_ip是目标服务器的IP地址或主机名。当首次登录时,会出现以下提示信息:
The authenticity of host 'second_server_ip (x.x.x.x)' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no)? [输入yes并回车]输入
yes后回车,将目标服务器的指纹添加到已知主机列表中。 -
如果成功登录到目标服务器,且无需输入密码,表示免密登录设置成功。
注意:如果仍然需要输入密码,请检查第一步和第二步的操作是否正确。常见错误包括:公钥内容没有正确复制到
authorized_keys文件中、文件权限不正确等。
通过以上步骤,您可以在两台Linux服务器之间设置免密登录。这样,您在第一台服务器上执行SSH连接命令时,就无需每次输入目标服务器的密码。
1年前 - 生成SSH密钥对:在第一台服务器上生成SSH密钥对(公钥和私钥)。可使用