ssh配置免密登录脚本

发布时间 2023-03-22 21:09:28作者: 清越′

SSH免密登录是一种通过SSH协议实现的无需输入密码即可登录目标主机的方式。它可以提高用户的登录效率和安全性。

以下是实现SSH免密登录的步骤:

  1. 在本地主机上生成公钥和私钥。可以使用命令ssh-keygen生成,其中公钥保存在/.ssh/id_rsa.pub文件中,私钥保存在/.ssh/id_rsa文件中。

  2. 将公钥复制到目标主机的~/.ssh/authorized_keys文件中。可以使用命令ssh-copy-id将本机的公钥复制到目标主机上。

  3. 配置目标主机的ssh服务。需要确保目标主机的/etc/ssh/sshd_config文件中的以下配置项为yes:

     RSAAuthentication yes
     PubkeyAuthentication yes
     AuthorizedKeysFile .ssh/authorized_keys
    
  4. 重启目标主机的ssh服务。可以使用命令systemctl restart sshd或service sshd restart来重启。

  5. 使用ssh命令进行免密登录。输入ssh user@hostname即可登录目标主机,无需输入密码。

需要注意的是,SSH免密登录的前提是本地主机和目标主机之间已经建立了信任关系。如果是第一次登录目标主机,需要手动输入密码进行认证,之后才能实现免密登录。

可以将这些步骤封装成一个快捷脚本,使得用户可以一键完成SSH免密登录的配置。

创建一个名为ssh-login.sh的脚本,内容如下:

#!/bin/bash

# 生成公钥和私钥
ssh-keygen

# 将公钥复制到目标主机上
read -p "请输入目标主机的IP地址或域名:" host
read -p "请输入目标主机的用户名:" user
ssh-copy-id -i ~/.ssh/id_rsa.pub $user@$host

# 配置目标主机的ssh服务
echo "RSAAuthentication yes" >> /etc/ssh/sshd_config
echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config
echo "AuthorizedKeysFile .ssh/authorized_keys" >> /etc/ssh/sshd_config
systemctl restart sshd

# 将私钥添加到SSH代理中
ssh-add ~/.ssh/id_rsa

echo "SSH免密登录配置完成!"