Linux Shell脚本实战:配置SSH免密登录

2023年 7月 30日 71.2k 0

SSH(Secure Shell)是一种加密的网络通信协议,用于安全的远程登录和其他安全网络服务。

免密登录是一种方便的方式,可以让你在无需输入密码的情况下通过SSH登录到远程服务器。

本文将介绍如何使用Shell脚本配置SSH免密登录。

图片[1]-Linux Shell脚本实战:配置SSH免密登录-不念博客

SSH公钥和私钥

SSH免密登录是基于公钥/私钥对实现的。

在本地机器上,我们可以使用ssh-keygen命令生成一对公钥和私钥:

ssh-keygen -t rsa

这个命令会在~/.ssh目录下生成两个文件:id_rsa(私钥)和id_rsa.pub(公钥)。

配置SSH免密登录

配置SSH免密登录的关键步骤是将本地的公钥添加到远程服务器的~/.ssh/authorized_keys文件中。

这可以通过ssh-copy-id命令实现:

ssh-copy-id user@remote_host

在这个命令中,user是远程服务器的用户名,remote_host是远程服务器的主机名或IP地址。

自动化配置SSH免密登录的Shell脚本

为了自动化配置SSH免密登录,我们可以编写一个Shell脚本:

#!/bin/bash

# Check if a remote host is provided
if [ -z "$1" ]; then
    echo "No remote host provided. Usage: $0 user@remote_host"
    exit 1
fi

# Generate a key pair if not exist
if [ ! -f ~/.ssh/id_rsa ]; then
    echo "Generating SSH key pair..."
    ssh-keygen -t rsa
fi

# Copy the public key to the remote host
echo "Copying public key to $1..."
ssh-copy-id $1

echo "SSH key-based authentication configured for $1."

这个脚本首先检查是否提供了远程主机的信息。

然后,它检查是否存在SSH密钥对,如果不存在,它会生成一个新的密钥对。

最后,它将公钥复制到远程主机。

运行脚本

要运行此脚本,你需要将其保存到一个文件中,例如setup_ssh.sh,然后使其可执行:

chmod +x setup_ssh.sh

然后,你可以运行此脚本来配置SSH免密登录:

./setup_ssh.sh user@remote_host

总结

通过本文,我们了解了如何使用Linux shell脚本配置SSH免密登录。

这不仅可以提高你的工作效率,还可以提高远程登录的安全性,因为你不再需要记住复杂的密码。但

请注意,你必须妥善保管你的私钥,因为任何拥有私钥的人都可以登录到你配置了免密登录的远程服务器。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论