ssh无密登录

### 配置SSH无密码登录的方法

为了实现两台主机之间的SSH无密码登录,可以按照以下方式完成配置:

#### 1. 确保SSH服务已正确安装并运行
在目标主机(如主机A和主机B)上确认是否已经安装了SSH服务。如果没有安装,则可以通过以下命令进行安装:
```bash
sudo apt-get update
sudo apt-get install openssh-server
```

接着验证SSH服务的状态,确保其正在运行:
```bash
service --status-all | grep ssh
```
如果显示`[+] ssh`表示服务正常运行;如果是`[-] ssh`则需手动启动服务:
```bash
sudo service ssh start
```

以上操作适用于基于Debian系统的Linux发行版。

---

#### 2. 修改SSH服务配置文件
编辑SSH服务的配置文件 `/etc/ssh/sshd_config` ,确保启用了密钥认证功能。具体检查以下参数是否存在且未被注释,并将其设置为 `yes`:
```plaintext
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
```
保存更改后重启SSH服务以使新配置生效:
```bash
sudo systemctl restart sshd
```

此步骤确保了SSH支持通过公钥方式进行身份验证。

---

#### 3. 创建RSA密钥对
在发起连接的一方(假设为主机A),执行以下命令生成一对新的RSA密钥:
```bash
ssh-keygen -t rsa
```
按回车键接受默认路径存储密钥对,默认位置通常位于用户的`.ssh`目录下。完成后会在该目录看到两个文件:`id_rsa`(私钥) 和 `id_rsa.pub`(公钥)。

---

#### 4. 将公钥复制至远程主机
将本地生成的公钥传输给目标主机(例如主机B),以便后者能够识别来自前者的请求。可采用多种方法之一来完成这一步骤:

##### 方法一: 使用 `ssh-copy-id` 工具 (推荐)
这是最简便的方式,只需一条指令即可自动把当前用户的公钥添加到远端机器对应的 `.ssh/authorized_keys` 文件里去:
```bash
ssh-copy-id [email protected]
```
当提示输入密码时,请提供对应账户(`leon`)的有效凭证。

##### 方法二: 手动上传与追加
如果不具备上述工具或者遇到某些特殊情况,也可以采取更基础的手工流程:
1. 把自己的公钥下载下来;
   ```bash
scp ~/.ssh/id_rsa.pub [email protected]:/tmp/my_key.pub
```
2. 登录到对方服务器并将接收到的内容写入指定区域;
   ```bash
cat /tmp/my_key.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
```
最后记得删除临时文件以免泄露敏感数据。

---

#### 5. 测试无密码登录
返回初始节点尝试重新建立链接看是否无需再额外询问任何口令就能顺利进入另一侧环境之中。
```bash
ssh [email protected]
```
成功之后便完成了整个过程!

---

### 注意事项
- 如果仍然无法实现无密码登录,请仔细核查每步细节是否有遗漏之处,比如权限设定不当等问题可能阻碍预期效果达成。
- 对于安全性考虑,在实际部署过程中建议进一步调整相关策略减少潜在风险暴露面。

你可能感兴趣的:(网络)