Ubuntu 14.04 上实现 SSH 无密码访问
虚拟机两台
master0@master0 192.168.0.100
slave1@slave1 192.168.0.101
以下出现的 master0 与 slave1 均为用户名,实际应用时需要注意替换
在执行 ssh-copy-id 命令时,需要两台机器同时开机并能网络连接成功
- -->分别在两台机器执行如下命令安装 ssh
sudo apt-get install openssh-server openssh-client -y
命令解释:
使用 sudo 会避免 Permission Denied 提示,但是会要求输入密码
apt-get 为 Ubuntu 自带的命令行安装软件工具,需要配置资源仓库
执行 cat /etc/apt/sources.list 可以查看现存配置
install 安装命令
openssh-server ssh 服务端
openssh-client ssh 客户端
-y 允许默认选项,不会询问用户是否允许等
- -->分别在两台机器切换到用户目录
cd ~
- -->分别在两台机器执行如下命令
ssh localhost
命令解释:
使用 SSH 连接本机,会要求输入密码
会在用户目录下创建 .ssh 目录,并在 .ssh 目录下生成 known_hosts 子文件
- -->分别在两台机器切换到 .ssh 目录
cd .ssh
- -->分别在两台机器生成私钥、公钥文件
ssh-keygen
命令解释:
使用默认参数生成 私钥文件(id_rsa) 与 公钥文件(id_rsa.pub)
- -->分别在两台机器编辑主机映射文件
sudo vi /etc/hosts
执行上一行的命令后,摁下键盘上的 i 键,之后开始输入,注意换行
在合适位置插入
192.168.0.100 master0
192.168.0.101 slave1
之后按键盘上的 Esc 键,输入 :x 保存并退出
- -->分别在两台机器执行以下两行命令,会要求输入密码,之后自动复制公钥到指定位置
ssh-copy-id -i id_rsa.pub master0@master0
ssh-copy-id -i id_rsa.pub slave1@slave1
命令解释:
追加 公钥 到 指定用户@指定机器 下 .ssh/authorized_keys 文件中
- -->分别在两台机器查看授权KEY文件,确保均至少存在两行,包含两台机器两个用户
cat authorized_keys
ssh-rsa ...... master0@master0
ssh-rsa ...... slave1@slave1
...... 为公钥串,内容的长度可以在执行 ssh-keygen 时指定
- 此时已经可以通过
ssh master0@master0 访问 master0 机器
通过
ssh slave1@slave1 访问 slave1 机器
- 可以使用简化方式访问
- -->分别在两台机器创建 config 文件,文件位置 .ssh/config
vi config
输入 摁下键盘上的 i 键
host master0
user master0
host slave1
user slave1
摁下键盘上的 Esc 键 输入 :x 退出并保存
此时就可以直接通过以下命令访问对应机器
ssh master0
ssh slave1