Linux服务器配置SHH免密互通

服务器A 172.25.11.11,
服务器B 172.25.11.12

在服务器 A 上配置

假设服务器 A 的IP地址为 172.25.11.11,我们将在这台服务器上生成密钥对并将公钥复制到服务器 B 上。

  1. 生成密钥对

    打开终端,执行以下命令生成密钥对。在生成过程中,你可以选择保留默认路径和设置空密码以简化使用,也可以根据需要进行修改。

     

    当执行 ssh-keygen -t rsa 命令后,系统会提示你输入几个选项。下面是各个选项的解释和建议的操作:

    1. Enter file in which to save the key (/root/.ssh/id_rsa)

      • 默认情况下,系统会建议你保存密钥的路径和文件名。按回车键接受默认的路径和文件名通常是最简单的选择。如果你有特殊需求,可以输入自定义的路径和文件名,例如 /path/to/your/ssh/key.
    2. Enter passphrase (empty for no passphrase)

      • 这一步是为你的私钥设置一个密码。密码可以为空,也可以输入一个密码来加强私钥的安全性。如果你希望私钥在使用时不需要输入密码,则直接按回车键即可留空。

    这将生成两个文件:

    • ~/.ssh/id_rsa:私钥文件
    • ~/.ssh/id_rsa.pub:公钥文件   在 /root/.ssh目录下

      复制公钥到服务器 B

      使用 ssh-copy-id 命令将服务器 A 的公钥复制到服务器 B 上。在终端执行以下命令

    • 这会提示输入服务器 B 的密码(usernameB 的密码),然后这个命令会将本地的公钥 ~/.ssh/id_rsa.pub 的内容追加到服务器 B 上的 ~/.ssh/authorized_keys 文件中。

    • 如果SSH端口不是22,是其他端口(如28495),用下面这种格式
    •  

      • ssh-copy-id -p 28495 root@172.25.11.12
    • 验证 SSH 代理是否正常工作

      可以运行以下命令来查看当前 SSH 代理中已加载的私钥:

       如果提示Could not open a connection to your authentication agent.

      表示你的系统中没有运行 SSH 代理(SSH agent),因此 ssh-add 命令无法将私钥添加到代理中。SSH 代理负责管理私钥并在需要时提供给 SSH 客户端。

      解决方法:

      要解决这个问题,

      1. 启动 SSH 代理

        在终端中运行以下命令来启动 SSH 代理:

        这会启动 SSH 代理并设置必要的环境变量。

        添加私钥到 SSH 代理

        现在再次运行 ssh-add 命令,将本机私钥添加到 SSH 代理中:

         

         如果私钥设置了密码,此时可能需要输入私钥密码。如果私钥没有密码,则直接执行命令即可。


         

        设置权限(如果需要):

        确保以下目录和文件权限设置正确,这是为了确保SSH可以安全地使用你的密钥对进行认证。

       ssh-add ~/.ssh/id_rsa
      chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
       
      配置A到B的已经完成,B到A一样的步骤
       
       
      然后就可以在A主机免密连接到B主机了
      ssh -p 28495 root@B主机IP
      查看B主机的文件内容 

      ssh -p 28495 root@主机B "cat /root/test.txt"


      访问B主机的sqlite数据库文件并执行update或select

      ssh -p 28495 root@主机B "sqlite3 /etc/test/test.db \"update inbounds set expiry_time=10000,enable=0 where remark='XXX@XX.COM';\""

posted @ 2024-08-07 14:17  一只竹节虫  阅读(98)  评论(0)    收藏  举报