多台终端SSH无密码登录

通过腾讯云服务搭建两个实例(Server 和 Client),实现两个实例之间的SSH免密登录,并在这两个实例上安装MySQL数据库。在Server实例上创建数据库和用户,然后在Client实例上远程连接至Server实例的MySQL数据库.

实验步骤

购买云服务实例

在腾讯云上购买两个实例,确保实例的配置为2核CPU、2GB内存,操作系统选择Ubuntu 20.04。分别设置实例的名称为master和slave1,并在安全组中添加规则允许MySQL(3306)端口的访问。

前置软件安装

在两个实例上执行以下命令以更新软件包列表并安装必要的软件:

1
2
sudo apt-get update
sudo apt-get install vim openssh-server mysql-server

配置主机名和主机映射

在Server和Client实例上,分别配置主机名和主机映射,以便在网络中方便地识别和访问彼此。用内网IP,降低使用成本。

  • 配置主机映射(/etc/hosts:添加或确认主机IP与名称的映射关系。

    1
    sudo vim /etc/hosts
  • 配置主机名(/etc/hostname:设置或修改实例的主机名,使其更具标识性。

    1
    sudo vim /etc/hostname

    并分别为master和slave1实例输入它们的名称。

SSH免密登录配置

  • 在Server端生成公私钥对,并将公钥内容添加至~/.ssh/authorized_keys文件中,实现免密登录:

    1
    2
    ssh-keygen -t rsa -c "YOUR_EMAIL"
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 验证SSH免密登录,尝试使用内网和公网IP地址登录Server自身,确保免密登录配置成功。

    image-20240319143056851
  • 将Server的公私钥对及授权文件传输至Client,实现Client对Server免密登录及Server对Client免密登录:

    1
    scp ~/.ssh/id_rsa ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys ubuntu@CLIENT_INTERNAL_IP:~/.ssh/

    实验结果

    image-20240319143954194

创建数据库并修改配置文件

  • 下载MySQL

    1
    sudo apt-get install mysql-server
  • 修改MySQL配置:更改/etc/mysql/mysql.conf.d/mysqld.cnf中的bind-address值为0.0.0.0,允许外部访问。

    1
    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
  • 重启MySQL服务以应用更改:

    1
    sudo service mysql restart
  • 创建数据库和用户:登录至MySQL服务,创建名为zhguichen的数据库,以及允许slave1远程访问的用户:

    1
    2
    3
    4
    CREATE DATABASE zhguichen;
    CREATE USER 'slave1'@'CLIENT_INTERNAL_IP' IDENTIFIED BY 'password';
    GRANT ALL ON *.* TO 'client'@'CLIENT_INTERNAL_IP';
    FLUSH PRIVILEGES;

在Client端验证数据库连接

使用以下命令从Client端连接至Server端的MySQL数据库,验证配置是否成功:

1
mysql -h SERVER_INTERNAL_IP -u slave1 -p
Screenshot 2024-03-19 at 12.04.31