服务器如何设置SSH:

SSH简介
SSH(Secure Shell)是一种网络协议,用于计算机之间的安全通信和数据传输,它通过加密技术,确保数据传输的安全性,广泛应用于远程登录、文件传输和远程命令执行等场景,在服务器管理中,SSH是必不可少的工具之一。
SSH设置步骤
安装SSH服务
确保服务器上已安装SSH服务,在Linux系统中,通常使用以下命令安装:
sudo aptget install opensshserver # Debian/Ubuntu系统 sudo yum install opensshserver # CentOS/RHEL系统
生成SSH密钥对
SSH密钥对由公钥和私钥组成,用于身份验证,在本地生成密钥对:
sshkeygen t rsa b 2048
系统会提示输入文件保存路径和密码,建议将私钥保存在安全的地方,并设置密码保护。
将公钥复制到服务器
将生成的公钥复制到服务器的~/.ssh/authorized_keys文件中,可以使用以下命令:
sshcopyid i ~/.ssh/id_rsa.pub 用户名@服务器IP
配置SSH客户端

在客户端,配置SSH客户端以使用私钥进行身份验证,编辑SSH配置文件:
vi ~/.ssh/config
Host 服务器IP
User 用户名
IdentityFile ~/.ssh/id_rsa
测试SSH连接
使用以下命令测试SSH连接:
ssh 服务器IP
如果一切正常,您应该能够成功登录服务器。
SSH配置优化
修改SSH端口
默认情况下,SSH服务运行在22端口,为了提高安全性,可以修改端口:
sudo vi /etc/ssh/sshd_config
找到Port行,修改端口号,
Port 2222
然后重启SSH服务:
sudo systemctl restart ssh
限制SSH登录用户
在/etc/ssh/sshd_config文件中,找到PermitRootLogin和PasswordAuthentication选项,分别设置为no,禁止root用户使用密码登录,并启用密钥认证:

PermitRootLogin no
PasswordAuthentication no
限制SSH登录时间
在/etc/ssh/sshd_config文件中,添加以下内容:
LoginGraceTime 30
设置登录超时时间为30秒。
FAQs
Q1:如何查看SSH连接日志?
A1:SSH连接日志通常位于/var/log/auth.log文件中,可以使用以下命令查看:
grep ssh /var/log/auth.log
Q2:SSH连接失败,提示“Connection timed out”怎么办?
A2:首先检查网络连接是否正常,然后确认SSH服务已启动,如果问题依然存在,可能是SSH端口被防火墙阻止,尝试修改SSH端口或添加防火墙规则允许该端口。
