凌峰创科服务平台

Ubuntu如何SSH登录服务器?

在Ubuntu系统中通过SSH登录服务器是远程管理Linux服务器的常用方式,本文将详细介绍从环境准备到安全配置的完整流程,帮助用户高效、安全地实现SSH连接。

Ubuntu如何SSH登录服务器?-图1
(图片来源网络,侵删)

SSH服务端安装与配置

确保服务器端已安装SSH服务,在Ubuntu服务器中,可通过以下命令安装OpenSSH服务器:

sudo apt update
sudo apt install openssh-server

安装完成后,服务会自动启动,可通过 systemctl status ssh 检查运行状态,若需手动启动或设置开机自启,使用:

sudo systemctl start ssh
sudo systemctl enable ssh

SSH主配置文件位于 /etc/ssh/sshd_config,可通过编辑该文件调整端口、认证方式等参数,修改默认SSH端口(默认为22)可提升安全性:

Port 2222  # 修改为自定义端口

修改后需重启SSH服务使配置生效:sudo systemctl restart ssh

Ubuntu如何SSH登录服务器?-图2
(图片来源网络,侵删)

客户端连接Ubuntu服务器

在本地Ubuntu系统中,默认已安装SSH客户端,若未安装,可通过 sudo apt install openssh-client 添加,连接服务器的基本命令为:

ssh username@server_ip

username为服务器用户名,server_ip为服务器公网IP地址,首次连接时,系统会提示保存服务器主机密钥(输入 yes 确认),之后输入用户密码即可登录。

为避免每次输入密码,可配置基于密钥的认证,在本地客户端生成SSH密钥对:

ssh-keygen -t rsa -b 4096

按提示生成公钥(~/.ssh/id_rsa.pub)和私钥(~/.ssh/id_rsa),将公钥上传至服务器:

Ubuntu如何SSH登录服务器?-图3
(图片来源网络,侵删)
ssh-copy-id username@server_ip

执行后需输入服务器密码,公钥将被追加至服务器 ~/.ssh/authorized_keys 文件中,此后登录即可直接通过私钥认证,无需输入密码。

SSH安全优化建议

  1. 禁用root直接登录:编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no,通过普通用户登录后切换至root。
  2. 使用密钥认证:在配置文件中设置 PasswordAuthentication no,强制仅允许密钥登录,提升安全性。
  3. 限制登录用户:通过 AllowUsers 指定允许登录的用户,AllowUsers user1 user2
  4. 配置防火墙:若使用UFW防火墙,需放行SSH端口(如默认22或自定义端口2222):
    sudo ufw allow 2222/tcp

常见问题排查

  1. 连接超时或被拒绝:检查服务器SSH服务是否运行(systemctl status ssh),防火墙是否放行端口,以及服务器IP是否正确。
  2. 密钥认证失败:确认服务器 ~/.ssh/authorized_keys 文件权限为600,所属用户正确,且私钥未被修改。

相关问答FAQs

Q1: 忘记SSH服务器密码且未配置密钥认证,如何重置密码?
A1: 若可通过控制台登录服务器,重启进入恢复模式(GRUB菜单选择Advanced options,选择recovery mode),执行 root Shell后,使用 passwd username 重置用户密码,若为云服务器,可通过控制台VNC功能重置密码。

Q2: 如何禁止特定IP地址访问SSH服务?
A2: 编辑 /etc/hosts.allow/etc/hosts.deny 文件,或使用UFW防火墙规则,在 /etc/hosts.deny 中添加 sshd: 192.168.1.100 禁止该IP访问,或在UFW中执行 sudo ufw deny from 192.168.1.100 to any port 22

分享:
扫描分享到社交APP
上一篇
下一篇