Linux系统SSH免密码登陆远程服务器的技巧

  • Post category:Linux

Linux系统SSH免密码登陆远程服务器的技巧

SSH(Secure Shell)是一种安全的网络协议,可以用于远程登录Linux系统。SSH免密码登陆远程服务器可以提高工作效率,让你迅速尝试修改或配置服务器,本篇文章将介绍SSHA免密码登陆远程服务器的方法。

环境准备

在进行SSH免密码登陆前,需要先确保以下两点:

  • 本地机器以及远程服务器上都已经安装了SSH服务;
  • 你的本地机器以及远程服务器都安装了sshpass,可以通过以下命令安装:
sudo apt-get update
sudo apt-get install sshpass

SSH免密码登陆远程服务器的步骤

第一步:生成公钥

在终端输入以下命令生成公钥:

ssh-keygen -t rsa

根据提示输入文件名和密码后,可以看到公钥已经生成。

第二步:将公钥拷贝到远程服务器

ssh-copy-id命令可以将公钥拷贝到远程服务器,这个命令会自动创建.ssh目录。你需要输入用户名和密码登陆到远程服务器。

ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@remote_host

第三步:测试SSH免密码登陆

现在你可以尝试从本地机器免密码登陆到远程服务器:

ssh your_username@remote_host

示例说明

以下两个示例说明将进一步说明如何进行SSH免密码登陆远程服务器:

示例一

假设你有本地机器A和远程服务器B,两者之间的IP地址分别为192.168.0.1和192.168.0.2。

  1. 在本地机器A上生成公钥:
ssh-keygen -t rsa
  1. 将公钥拷贝到远程服务器B:
ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@192.168.0.2
  1. 尝试在本地机器A上通过SSH免密码登陆到远程服务器B:
ssh your_username@192.168.0.2

示例二

假设你在本地机器A上有一个脚本可以通过ssh访问远程服务器B并在其上运行脚本,但是每次执行脚本都需要输入密码。

通过SSH免密码登陆可以使这个过程更加方便,详细步骤如下:

  1. 在本地机器A上生成公钥:
ssh-keygen -t rsa
  1. 将公钥拷贝到远程服务器B:
ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@remote_host
  1. 在本地机器A上创建一个脚本,内容如下:
#!/bin/bash
ssh your_username@remote_host << EOF
  cd /path/to/script
  ./run_script.sh
  exit
EOF

其中,run_script.sh是要在远程服务器上运行的脚本。

现在,你可以直接运行本地机器A上的这个脚本,而不需要每次都输入密码。

./run_on_remote.sh

以上就是SSH免密码登陆远程服务器的详细攻略。