ssh 用户名@服务器IP地址
;若端口非默认22,则加-p 端口号
参数。SSH基础操作
安装SSH
- 客户端安装(通常预装):
sudo apt install openssh-client # Debian/Ubuntu sudo yum install openssh-clients # CentOS/RHEL
- 服务端安装:
sudo apt install openssh-server # Debian/Ubuntu sudo yum install openssh-server # CentOS/RHEL
- 启用服务:
sudo systemctl enable --now sshd # 启动并设置开机自启
连接远程服务器
ssh username@remote_ip # 基础格式
- 指定端口(默认22):
ssh -p 2222 user@192.168.1.100 # 连接非默认端口
- 首次连接:需接受主机密钥指纹(输入
yes
确认)。
配置文件优化
编辑 ~/.ssh/config
简化连接:
Host myserver HostName 203.0.113.5 User admin Port 2222
之后直接执行 ssh myserver
即可连接。
密钥认证(更安全)
生成密钥对
ssh-keygen -t ed25519 # 推荐ed25519算法
- 默认保存位置:
~/.ssh/id_ed25519
(私钥)和~/.ssh/id_ed25519.pub
(公钥)。
上传公钥到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote_ip
- 或手动追加公钥到服务器的
~/.ssh/authorized_keys
文件中。
禁用密码登录(提升安全)
编辑服务器上的 /etc/ssh/sshd_config
:
PasswordAuthentication no # 关闭密码登录 PubkeyAuthentication yes # 启用密钥登录
重启服务生效:
sudo systemctl restart sshd
高级技巧
文件传输
- 从本地上传:
scp file.txt user@remote_ip:/path/to/dest
- 从服务器下载:
scp user@remote_ip:/remote/file.txt /local/path
端口转发
- 本地端口转发(访问远程服务):
ssh -L 8080:localhost:80 user@remote_ip # 本地8080映射到远程80端口
连接问题排查
- 调试模式:
ssh -vvv user@remote_ip # 显示详细日志
- 检查服务状态:
sudo systemctl status sshd # 确认服务运行
- 防火墙放行:
sudo ufw allow 22/tcp # Ubuntu sudo firewall-cmd --add-service=ssh --permanent # CentOS
安全最佳实践
- 修改默认SSH端口
编辑/etc/ssh/sshd_config
:Port 2222 # 改为非标准端口
- 禁止root登录
同一配置文件中:PermitRootLogin no
- 使用Fail2ban防御暴力破解
sudo apt install fail2ban # Debian/Ubuntu sudo yum install fail2ban # CentOS/RHEL
SSH是Linux系统管理的必备技能,通过密钥认证、端口修改和配置优化可大幅提升安全性,建议定期更新OpenSSH软件,并监控登录日志(/var/log/auth.log
),对于生产环境,务必遵循最小权限原则。
引用说明参考OpenSSH官方文档(openssh.com)、Linux man-pages及服务器安全最佳实践,操作前请备份配置文件,修改关键设置需谨慎。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/39424.html