两台linux服务器如何设置免密

不及物动词 其他 743

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    两台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年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在两台Linux服务器上设置免密登录有多种方法。下面将介绍其中两种常用的方法:使用密钥对和使用SSH代理。

    方法一:使用密钥对

    1. 生成密钥对
      在本地计算机上打开终端,输入以下命令生成密钥对:
    ssh-keygen -t rsa
    

    按照提示操作,可以选择默认的文件名和密码,也可以自定义。这将在~/.ssh目录下生成公钥和私钥文件。

    1. 将公钥复制到目标服务器
      使用以下命令将公钥复制到目标服务器:
    ssh-copy-id user@remote_server
    

    其中,user是目标服务器上的用户名,remote_server是目标服务器的IP地址或域名。输入命令后,会要求输入目标服务器的密码。

    1. 验证设置
      尝试使用SSH连接到目标服务器:
    ssh user@remote_server
    

    如果不需要输入密码直接登录成功,则说明免密设置成功。

    方法二:使用SSH代理

    1. 在本地设置SSH代理
      在本地计算机上打开终端,输入以下命令启动SSH代理:
    eval `ssh-agent`
    

    然后,添加私钥到代理:

    ssh-add ~/.ssh/id_rsa
    

    需要注意的是,如果私钥文件的名字或路径不是默认的,需要将命令中的“~/.ssh/id_rsa”替换成实际的私钥文件路径。

    1. 将公钥添加到目标服务器
      登录到目标服务器,将本地计算机的公钥添加到目标服务器的认证文件中,可以使用以下命令:
    ssh-add -L >> ~/.ssh/authorized_keys
    
    1. 验证设置
      尝试使用SSH连接到目标服务器:
    ssh user@remote_server
    

    如果不需要输入密码直接登录成功,则说明免密设置成功。

    总结:
    以上是两种常用的在两台Linux服务器上设置免密登录的方法。通过生成密钥对或使用SSH代理,可以实现免去每次登录需要输入密码的繁琐,提高登录的便捷性和效率。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要设置两台Linux服务器之间的免密登录,需要遵循以下步骤:

    1. 生成SSH密钥对:在第一台服务器上生成SSH密钥对(公钥和私钥)。可使用ssh-keygen命令生成,指定保存公钥和私钥的路径。例如:ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa。在生成过程中会提示输入密钥的密码,可以选择设置密码或留空。
    2. 将公钥复制到目标服务器:使用ssh-copy-id命令将公钥复制到第二台服务器上。例如:ssh-copy-id user@second_server_ip。执行该命令后,会提示输入目标服务器的密码。
    3. 验证免密登录:执行ssh user@second_server_ip命令,如果成功登录目标服务器而无需输入密码,则表示免密登录设置成功。

    下面将详细介绍免密登录的设置步骤和注意事项。

    步骤一:生成SSH密钥对

    1. 登录第一台服务器,在终端中执行以下命令生成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文件中。

    2. 重复以上步骤,在第二台服务器上生成SSH密钥对。

    步骤二:复制公钥到目标服务器

    1. 从第一台服务器上复制公钥内容。可以使用以下命令打印公钥内容:

      cat ~/.ssh/id_rsa.pub
      

      执行命令后,终端会输出公钥的内容。将输出结果复制到剪贴板。

    2. 登录第二台服务器,在终端中执行以下命令,将公钥内容添加到目标服务器的authorized_keys文件中:

      echo [公钥内容] >> ~/.ssh/authorized_keys
      

      [公钥内容]替换为从第一台服务器复制的公钥内容。执行命令后,公钥会被追加到~/.ssh/authorized_keys文件中。

      注意:如果~/.ssh/authorized_keys文件不存在,可以使用以下命令创建:

      mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys
      

    步骤三:验证免密登录

    1. 在第一台服务器上执行以下命令,尝试登录到第二台服务器:

      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后回车,将目标服务器的指纹添加到已知主机列表中。

    2. 如果成功登录到目标服务器,且无需输入密码,表示免密登录设置成功。

      注意:如果仍然需要输入密码,请检查第一步和第二步的操作是否正确。常见错误包括:公钥内容没有正确复制到authorized_keys文件中、文件权限不正确等。

    通过以上步骤,您可以在两台Linux服务器之间设置免密登录。这样,您在第一台服务器上执行SSH连接命令时,就无需每次输入目标服务器的密码。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部