云服务器的一键登录

221 阅读2分钟

云服务器一般要使用ssh root@ip 回车后输入密码登录

要实现云服务器的一键登录,可以通过配置SSH密钥对认证来避免每次登录都需要输入密码。以下是基本步骤:

生成SSH密钥对

  1. 在你的本地机器上打开终端。

  2. 如果你还没有生成过SSH密钥对,可以使用下面的命令生成一个新的SSH密钥对:

    bash
    深色版本
    1ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
  3. 按照提示操作,你可以直接按回车接受默认设置,或者选择一个文件名来保存私钥和公钥(例如~/.ssh/id_rsa)。

添加公钥到远程服务器

  1. 将生成的公钥(默认是~/.ssh/id_rsa.pub)添加到你的远程服务器上。

  2. 可以通过下面的命令将公钥复制到远程服务器:

    cat ~/.ssh/id_rsa.pub | ssh root@your_server_ip 'cat >> .ssh/authorized_keys'
    

    或者手动复制公钥内容,然后登录服务器并将其添加到~/.ssh/authorized_keys文件中。

配置无密码登录

  1. 确保远程服务器上的.ssh目录和authorized_keys文件的权限正确设置:

    ssh root@your_server_ip 'mkdir -p .ssh; chmod 700 .ssh; chmod 600 .ssh/authorized_keys'
    
  2. 'mkdir -p .ssh; chmod 700 .ssh; chmod 600 .ssh/authorized_keys': 这是一个单引号括起来的字符串,包含了要在远程服务器上执行的Shell命令。这些命令会被远程服务器上的Shell解释器依次执行。具体来说:

-   `mkdir -p .ssh`: 创建名为`.ssh`的目录,如果该目录已经存在,则不会创建新的。`-p`选项意味着即使需要创建中间目录也会自动创建它们。
-   `chmod 700 .ssh`: 设置`.ssh`目录的权限为700,这意味着只有`root`用户有读写执行的权限。
-   `chmod 600 .ssh/authorized_keys`: 设置`.ssh/authorized_keys`文件的权限为600,这表示只有`root`用户有读写权限,其他用户没有权限。

整个命令的作用是:

  • 连接到远程服务器;
  • 确保.ssh目录存在,并设置正确的权限;
  • 确保authorized_keys文件存在,并设置正确的权限。

这样做的目的是为了确保SSH密钥认证的安全性。.ssh目录及其内的文件应该只对用户本人可读写,以防止其他用户访问到私钥或修改公钥,从而保证SSH连接的安全。

  1. 之后尝试无密码登录:

    ssh root@your_server_ip