基础连接步骤
-
安装SSH客户端
大多数Linux发行版已预装OpenSSH客户端,检查是否安装:ssh -V # 显示版本即表示已安装
若未安装,执行:
sudo apt install openssh-client # Debian/Ubuntu sudo yum install openssh-clients # CentOS/RHEL
-
发起连接
基础命令格式:ssh 用户名@服务器IP -p 端口号
- 示例:
ssh root@192.168.1.100 -p 22 # 默认端口22可省略
- 首次连接提示:
会显示服务器指纹,输入yes
确认信任。
- 示例:
-
输入密码登录
按提示输入用户密码(输入时无显示),成功后进入服务器终端。
密钥认证(免密登录,更安全)
步骤1:生成密钥对
本地终端执行:
ssh-keygen -t ed25519 # 推荐ed25519算法,或使用rsa
- 按提示设置密钥存储路径(默认
~/.ssh/id_ed25519
)和密码(可选)。
步骤2:上传公钥到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器IP
输入服务器密码后,公钥会自动添加到服务器的~/.ssh/authorized_keys
文件中。
步骤3:密钥登录验证
ssh 用户名@服务器IP # 无需密码直接登录
常见问题与解决方案
问题 | 原因与解决方式 |
---|---|
连接超时 | 检查防火墙:sudo ufw allow 22 (Ubuntu)或firewall-cmd --add-port=22/tcp --permanent (CentOS) |
Permission denied | 密码错误:重新输入 服务器未开启密码登录:需使用密钥 用户无SSH权限:联系管理员 |
No route to host | 服务器IP错误或网络不通,用ping 服务器IP 测试 |
端口被修改 | 确认服务端口:ssh -p 新端口 用户@IP |
高级技巧
-
SSH配置文件简化连接
编辑本地~/.ssh/config
文件:Host myserver # 自定义别名 HostName 192.168.1.100 User root Port 2222 IdentityFile ~/.ssh/id_ed25519 # 指定密钥
之后只需执行:
ssh myserver
-
文件传输
- 上传到服务器:
scp -P 22 本地文件.txt 用户名@服务器IP:/目标路径/
- 从服务器下载:
scp 用户名@服务器IP:/远程文件.txt 本地路径/
- 上传到服务器:
-
端口转发(调试用)
ssh -L 8080:localhost:80 用户@服务器IP # 将本地8080映射到服务器80端口
安全最佳实践
-
禁用密码登录(提升安全性)
登录服务器后编辑/etc/ssh/sshd_config
:PasswordAuthentication no # 关闭密码登录 PermitRootLogin no # 禁止root直接登录 Port 2222 # 更改默认端口
重启服务生效:
sudo systemctl restart sshd
-
其他建议
- 使用强密码或密钥密码(避免纯密钥无密码)。
- 定期更新SSH服务:
sudo apt upgrade openssh-server
。 - 用
fail2ban
防御暴力破解。
SSH是Linux服务器管理的必备技能,掌握密钥登录和配置文件可大幅提升效率,务必遵循安全实践,如禁用密码登录、修改默认端口,以保护服务器免受攻击,遇到连接问题时,逐步检查网络、防火墙、服务状态(systemctl status sshd
)和配置参数。
引用说明参考OpenSSH官方文档(openssh.com)、Linux man手册及服务器安全最佳实践,操作命令基于主流Linux发行版(Ubuntu/CentOS)验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9950.html