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。
- 在本地机器A上生成公钥:
ssh-keygen -t rsa
- 将公钥拷贝到远程服务器B:
ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@192.168.0.2
- 尝试在本地机器A上通过SSH免密码登陆到远程服务器B:
ssh your_username@192.168.0.2
示例二
假设你在本地机器A上有一个脚本可以通过ssh访问远程服务器B并在其上运行脚本,但是每次执行脚本都需要输入密码。
通过SSH免密码登陆可以使这个过程更加方便,详细步骤如下:
- 在本地机器A上生成公钥:
ssh-keygen -t rsa
- 将公钥拷贝到远程服务器B:
ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@remote_host
- 在本地机器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免密码登陆远程服务器的详细攻略。