您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux中SSH免密登陆的方法
## 前言
SSH(Secure Shell)是Linux系统中常用的远程登录协议,通过加密通信保障数据传输安全。传统密码登录每次都需要输入密码,而SSH免密登录通过密钥认证机制可以显著提升效率和安全性。本文将详细介绍三种主流实现方式及其应用场景。
---
## 一、SSH密钥对认证原理
免密登录的核心是**非对称加密技术**:
1. 客户端生成公钥(`id_rsa.pub`)和私钥(`id_rsa`)
2. 公钥上传至服务端的`~/.ssh/authorized_keys`文件
3. 登录时服务端用公钥加密随机字符串,客户端用私钥解密后返回验证

> 注:实际通信过程还包含会话密钥协商等步骤,此处为简化说明
---
## 二、标准密钥对配置方法
### 1. 生成密钥对
```bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t
指定密钥类型(推荐ed25519更安全)-b
设置密钥长度~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host
或手动操作:
cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ssh -T user@host
当需要区分不同服务器时:
# 生成新密钥
ssh-keygen -f ~/.ssh/work_key -t ed25519
# ~/.ssh/config 配置示例
Host work-server
HostName 192.168.1.100
User admin
IdentityFile ~/.ssh/work_key
在公钥前添加限制选项:
command="/bin/backup.sh",no-port-forwarding ssh-rsa AAAAB3Nza...
# CA签发证书
ssh-keygen -s ca_key -I user_id user_key.pub
# 服务端配置
TrustedUserCAKeys /etc/ssh/ca.pub
现象 | 可能原因 | 解决方案 |
---|---|---|
Permission denied | 文件权限过大 | chmod 600 相关文件 |
仍要求密码 | SELinux限制 | restorecon -Rv ~/.ssh |
连接超时 | 防火墙拦截 | 检查iptables/nftables 规则 |
密钥被拒 | 服务端未开启密钥认证 | 检查/etc/ssh/sshd_config 中:PubkeyAuthentication yes |
查看详细日志:
ssh -vvv user@host # 三级详细日志
journalctl -u sshd # 服务端日志
私钥保护
ssh-keygen -p
ssh-agent
管理密钥:
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa
服务端加固
# /etc/ssh/sshd_config
PasswordAuthentication no
MaxAuthTries 3
PermitRootLogin prohibit-password
定期轮换
# 撤销旧密钥
sed -i '/old_key/d' ~/.ssh/authorized_keys
SSH免密登录不仅提升工作效率,配合正确的安全策略还能增强系统防护。建议结合跳板机、VPN等方案构建多层次安全体系。对于自动化运维场景,可进一步学习Ansible等工具的SSH集成用法。
附录:相关命令速查 -
ssh-keygen -l -f keyfile
查看密钥指纹 -ssh-keyscan host
获取主机公钥 -ssh-keygen -R host
清除已知主机记录 “`
注:实际使用时请将示例IP/域名替换为真实地址,图片链接需自行替换。本文约1050字,包含技术原理、实操步骤、排错方法和安全建议四个核心部分。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。