Linux服务器与本地之间免登配置

步骤一.本地生成密钥对

1.检查是否已有密钥

默认密钥路径为 ~/.ssh/,检查是否存在 id_rsa(私钥)和 id_rsa.pub(公钥):

 cd ~/.ssh
  ls -l

若已存在且想复用,可跳过生成步骤;若想重新生成,先删除旧密钥:rm ~/.ssh/id_rsa*,或者重新生成不同名字的秘钥。

2. 生成密钥对

执行以下命令,按提示操作(推荐一路回车,不设置密码短语,否则仍需输入短语):

ssh-keygen -t rsa -b 4096  # -t 指定算法(rsa),-b 指定密钥长度(4096位,更安全)

输出示例:
 Generating public/private rsa key pair.
Enter file in which to save the key (/home/yourname/.ssh/id_rsa):  # 回车默认路径,可以输入自定义名称
Enter passphrase (empty for no passphrase):  # 回车(不设置密码)
Enter same passphrase again:  # 再次回车
Your identification has been saved in /home/yourname/.ssh/id_rsa
Your public key has been saved in /home/yourname/.ssh/id_rsa.pub

生成后,~/.ssh/ 目录下会新增两个文件:

  • id_rsa:私钥(绝对不能泄露给他人)
  • id_rsa.pub:公钥(可公开,用于上传到服务器)

步骤二:上传公钥到目标服务器

将本地公钥 id_rsa.pub 内容添加到服务器的 ~/.ssh/authorized_keys 文件中(该文件存储所有允许免登的公钥)。

方法 1:自动上传(推荐,简单快捷)

使用 ssh-copy-id 命令(大多数 Linux 系统自带,windows系统可能有问题):

ssh-copy-id 用户名@服务器IP/域名
  • 示例:ssh-copy-id root@192.168.1.100(首次需输入服务器密码)。
该命令会自动:
  1. 登录服务器并创建 ~/.ssh 目录(若不存在)。
  2. 将本地 id_rsa.pub 内容追加到服务器的 ~/.ssh/authorized_keys 文件。

方法 2:手动上传(适用于无 ssh-copy-id 的场景)**

  1. 本地查看公钥内容:

    cat ~/.ssh/id_rsa.pub
    
    • 输出类似:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC... 用户名@本地主机名
  2. 登录服务器(需输入密码):

    ssh 用户名@服务器IP
    
  3. 服务器上创建 .ssh 目录(若不存在)并设置权限:

    mkdir -p ~/.ssh  # -p 确保父目录存在,无则创建
    chmod 700 ~/.ssh  # 关键:仅所有者可读写执行,否则密钥认证可能失败
    
  4. 将本地公钥内容追加到服务器的 ~/.ssh/authorized_keys

    vi ~/.ssh/authorized_keys  # 用vi编辑文件
    

    在文件末尾粘贴本地公钥内容(右键粘贴或按 i 进入插入模式后粘贴),保存退出(按 ESC,输入 :wq 回车)。

  5. 服务器上设置 authorized_keys 权限:

    chmod 600 ~/.ssh/authorized_keys  # 仅所有者可读写,权限过高会导
    

步骤三:验证免登

本地执行登录命令,若无需输入密码直接进入服务器,则配置成功:

ssh 用户名@服务器IP

进阶配置(可选)

简化登录命令(别名)

本地编辑 ~/.ssh/config 文件(无则创建):

vi ~/.ssh/config

添加内容:

Host 服务器别名  # 自定义别名,如 myserver
    HostName 服务器IP或域名  # 如 192.168.1.100
    User 登录用户名  # 如 root
    IdentityFile ~/.ssh/id_rsa  # 私钥路径(默认可省略)

保存后,直接用别名登录:ssh 服务器别名。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容