概念
- 全称:Secure Shell,应用层协议,默认端口22
- 采用非对称加密RSA
- 功能:专为远程登录提供安全性协议
- 优点
2. 密钥登录
ssh [-i FILE] USER@IP
常见问题
1. SSH免密登录(即密钥登录)
本质是将客户机的公钥拷贝至服务器的authorized_keys文件中保存起来
步骤
- 客户机中生成公私钥:
ssh-keygen
- 拷贝公钥到服务器:
ssh-copy-id user@ip
2. SSH登录后闲置时间过长而断开连接
原因
由于Linux安全设置,在一段时间内没有使用数据的情况下会自动断开
解决
让本地或者服务器隔一段时间发送一个请求给对方即可
方案
A:调整参数ClientAliveInterval、ClientAliveCountMax
编辑服务器配置文件/etc/ssh/sshd_config
ClientAliveInterval:服务器给客户端发送心跳的间隔时间(s)
ClientAliveCountMax:客户端无响应最大次数(超时服务器将自动断开连接)
B:调整客户机配置文件参数(推荐)
编辑客户机配置文件~/.ssh/config``/etc/ssh/ssh_config
Host *
ServerAliveInterval:# 客户端给服务器发送心跳的间隔时间(s),每隔xxx秒就向服务器发送一个请求
ServerAliveCountMax:# 服务器无响应最大次数(超时客户端会断开连接),允许超时的次数,一般都会响应,推荐3
3. SSH禁止Root远程登录
编辑服务器配置文件/etc/ssh/sshd_config
PubkeyAuthentication yes # (禁用)密钥登录
PasswordAuthentication no # (禁用)密码登录
PermitRootLogin no # (禁用)root能SSH登录
参考资料
- SSH简介及两种远程登录的方法_德prince-CSDN博客_ssh
- https://www.jianshu.com/p/14027e35b900 解决Permission denied (publickey)问题 .ssh/authorized_keys中无公钥
思考
- 定性,ssh是什么?用来做什么即功能用途?
- 使用,如何去使用?常用用途哪些?
- 原理,底层是如何实现的?与其他子部分关联起来?为什么要实现?
- 对比,存在哪些优缺点?同类型有哪些?
- 拓展,如何改善已有缺陷?若是自己该如何设计?
- 如何去组织文章内容?