Linux中设置SSH密钥认证步骤详解
需积分: 0 53 浏览量
更新于2024-08-05
收藏 1.53MB PDF 举报
"本文主要介绍了如何在Linux系统中配置基于密钥认证的SSH,以提高安全性,减少对密码的依赖。教程中以ArchLinux作为本地系统,Ubuntu 18.04 LTS作为远程系统进行演示。"
在Linux环境中,SSH(Secure Shell)是一种广泛使用的加密网络协议,用于在不安全的网络上实现安全的远程访问和通信。SSH提供多种认证方式,包括基于密码的认证和基于密钥的认证。基于密码的认证需要用户输入远程系统的用户密码,而基于密钥的认证则更安全,因为它依赖于一对密钥——私钥和公钥。私钥应妥善保存在本地系统,公钥则需上传至远程系统。
配置基于密钥认证的SSH步骤如下:
1. **生成SSH密钥对**:在本地系统(如ArchLinux)上,使用`ssh-keygen`命令生成SSH密钥对。通常,这个命令会创建一个默认存储在`~/.ssh`目录下的id_rsa(私钥)和id_rsa.pub(公钥)文件。
```
ssh-keygen -t rsa -b 4096
```
2. **查看公钥内容**:使用`cat`命令查看公钥内容,以便稍后将其添加到远程系统的授权密钥文件中。
```
cat ~/.ssh/id_rsa.pub
```
3. **复制公钥到远程系统**:可以使用`ssh-copy-id`命令将公钥复制到远程系统(如Ubuntu 18.04 LTS)的`~/.ssh/authorized_keys`文件中。
```
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-system-ip
```
4. **配置远程系统**:确保远程系统上的SSH服务已经启动并允许公钥认证。检查`/etc/ssh/sshd_config`文件,确保以下设置正确:
```
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
```
5. **重启SSH服务**:在远程系统上重启SSH服务,使配置生效。
```
sudo systemctl restart sshd
```
6. **测试连接**:现在,你应该能够使用SSH基于密钥的身份验证来连接到远程系统,而无需输入密码。
```
ssh user@remote-system-ip
```
注意,使用基于密钥的认证可以增强系统的安全性,但也要确保私钥的安全,避免私钥泄露给他人。此外,定期更换密钥也是维护安全的好习惯。
通过以上步骤,你已经在Linux中成功配置了基于密钥认证的SSH连接。这种方式不仅可以提高安全性,还可以减少因频繁输入密码带来的不便。如果你需要管理多个远程服务器,这种方法尤其适用,可以大大提高工作效率。
2019-04-02 上传
2011-11-06 上传
2023-08-16 上传
2023-07-28 上传
2023-07-29 上传
2023-04-20 上传
2023-05-26 上传
2023-06-06 上传
艾斯·歪
- 粉丝: 42
- 资源: 342
最新资源
- C++解析PDF文件的源码示例
- ClassStuffdotjpg:课堂博客
- choco-cpviz:Choco3的扩展以处理cpviz librairie
- 主要用于学习mysql.zip
- capstan:基于Apache Flink的项目
- InfInstall VC++ inf安装程序
- Jenkins-webapp
- 喵API
- jsCodeDemo:JavaScript 模拟实现前端常见函数,算法面试题
- dfs-proxy:杂草dfs代理
- lpnyc:学习 Python NYC 的 TDD(测试驱动演示)旨在成为一个元包,可以自动测试发现针对 Python 2 和 3 运行的单元测试
- 这是我在学习《php 和MySql Web 开发》过程中所写的代码.zip
- api-spec-modules:用于实现REST API的一组可重用的规范
- VC++ 6.0远程备份下载程序
- gxsd-android-tch_stu:高速速读_老师端和学生端
- guess-the-number