添加ssh公钥到远程主机授权文件

这是一个bash脚本,用于将本地的SSH公钥添加到指定远程主机的authorized_keys文件中。脚本首先检查SSH公钥是否存在,如果不存在则生成,然后通过SSH连接将公钥追加到远程主机的authorized_keys文件,以实现免密登录。

添加ssh公钥到远程主机授权文件


#!/bin/bash


################################################################################
# This script add lab's id_pub_isa to remote lab's authorized_keys.
################################################################################




usage()
{
        echo "Usage:    `basename $0` -u username -p password -a ip_address"
        echo "Note:     During excution, you may need to input enter and lab password serveral times"
        exit 0
}


[ $# -lt 1 ] && usage


while getopts :u:p:a:h input
do
        case $input in
                u) RUSER=$OPTARG
                        ;;
           

### 配置 SSH 公钥认证以实现无密码登录 为了实现从本地主机无密码登录到远程服务器,需配置 SSH 公钥认证。SSH 公钥认证是一种基于密钥的身份验证方式,使用一对加密密钥(公钥和私钥)来建立安全连接。公钥部署在远程服务器上,而私钥保留在本地主机上。 #### 生成 SSH 密钥对 在本地主机上执行以下命令生成 SSH 密钥对: ```bash ssh-keygen -t rsa ``` 此命令将生成两个文件: - 私钥文件 `~/.ssh/id_rsa`,用于本地身份验证。 - 公钥文件 `~/.ssh/id_rsa.pub`,用于部署到远程服务器上[^2]。 默认情况下,该命令会提示输入密码短语,如果希望实现完全无密码登录,可直接按回车跳过密码设置。 #### 将公钥部署到远程服务器 将本地生成的公钥内容追加远程服务器上的 `~/.ssh/authorized_keys` 文件中。可以通过以下命令完成: ```bash cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" ``` 此命令将自动在远程服务器上创建 `.ssh` 目录(如果不存在),并将公钥添加到 `authorized_keys` 文件中。 为确保 SSH 公钥认证的安全性,必须设置正确的文件权限: - 远程服务器上的 `~/.ssh` 目录权限应为 `700`。 - 远程服务器上的 `~/.ssh/authorized_keys` 文件权限应为 `600`。 执行以下命令设置权限: ```bash chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` 如果 `.ssh` 目录或 `authorized_keys` 文件的权限设置不正确,可能导致 SSH 公钥认证失败[^1]。 #### 验证 SSH 公钥认证 完成配置后,尝试通过 SSH 连接到远程服务器: ```bash ssh username@remote_host ``` 如果配置正确,将无需输入密码即可成功登录。 #### 注意事项 - 如果远程服务器上已有其他用户的公钥,确保不会覆盖 `authorized_keys` 文件的内容,应使用 `>>` 追加方式添加公钥。 - 如果使用非默认的密钥文件,需在连接时指定密钥路径,例如: ```bash ssh -i ~/.ssh/custom_key username@remote_host ``` - 为避免权限问题,确保远程服务器上的 `.ssh` 目录及其文件的归属权正确,即属于目标用户所有[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值