当前位置:首页 > Linux > 正文

linux 如何ssh

在Linux中使用SSH远程连接服务器,需安装openssh-client(通常已预装),执行命令 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:

linux 如何ssh 第1张

重启服务生效:

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


安全最佳实践

  1. 修改默认SSH端口

    编辑 /etc/ssh/sshd_config:

    linux 如何ssh 第2张

    Port 2222 # 改为非标准端口
  2. 禁止root登录

    同一配置文件中: PermitRootLogin no

  3. 使用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及服务器安全最佳实践,操作前请备份配置文件,修改关键设置需谨慎。

linux 如何ssh 第3张

0