首先确认SSH服务是否正在运行,这是远程登录的基础。使用以下命令查看服务状态:
sudo systemctl status ssh
如果服务未启动(显示“inactive”),启动服务:
sudo systemctl start ssh
若需服务开机自启,执行:
sudo systemctl enable ssh
SSH配置文件(/etc/ssh/sshd_config)的参数直接影响远程登录。用文本编辑器(如nano)打开文件:
sudo nano /etc/ssh/sshd_config
重点检查以下关键配置(确保未被注释且值正确):
sudo systemctl restart ssh
Ubuntu默认使用ufw防火墙,可能阻止SSH连接。查看防火墙状态:
sudo ufw status
若状态为“active”,需允许SSH端口(默认22):
sudo ufw allow ssh # 或 sudo ufw allow 22/tcp
若防火墙未启用,可选择性开启(增强安全性):
sudo ufw enable
确保客户端与服务器之间的网络通畅。在客户端使用ping命令测试服务器IP:
ping <服务器IP地址>
若无法ping通,需检查网络线路、路由器设置或服务器IP是否正确。
若以上步骤未解决,通过日志获取具体错误信息。Ubuntu的SSH日志路径为/var/log/auth.log,使用以下命令实时查看最新日志:
sudo tail -f /var/log/auth.log
常见错误示例及解决方向:
id <用户名>
~/.ssh/authorized_keys文件(每行一个公钥),且文件权限正确:chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
私钥在客户端的权限也需设为600(如~/.ssh/id_rsa)。若所有配置均正确但仍无法登录,可能是SSH服务损坏。卸载并重新安装:
sudo apt remove --purge openssh-server openssh-client
sudo apt autoremove
sudo apt autoclean
sudo apt update
sudo apt install openssh-server openssh-client
sudo systemctl start ssh