当前位置:首页 > 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张

   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

安全最佳实践

  1. 修改默认SSH端口
    编辑 /etc/ssh/sshd_config

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

0