ubuntu 开启ssh踩坑之旅

发布于:2025-07-19 ⋅ 阅读:(15) ⋅ 点赞:(0)

确认当前用户为普通用户 or root

我当前是一个普通用户,需要使用sudo命令;如何判断当前用户为普通用户 or root:

方法一:查看命令行提示符

root@hostname:~# // 普通用户以#结尾
username@hostname:~$ // 普通用户以$结尾

方法二:使用id命令

id

uid=0(root) gid=0(root) groups=0(root) // root 用户:会显示 uid=0(root)
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),24(cdrom),27(sudo) // 普通用户:uid 为非零值(如 uid=1000(username))

命令使用ssh还是sshd

ubuntu中没有sshd命令,只有ssh,指的就是sshd

centos中用的是sshd

服务名称的由来
  • sshd
    OpenSSH 服务器的守护进程名称为 sshdSecure Shell Daemon),其 systemd 服务文件通常为 /lib/systemd/system/ssh.service,但服务名仍为 ssh(Debian/Ubuntu 的命名习惯)。
  • ssh
    在 Debian/Ubuntu 中,OpenSSH 服务器的 systemd 服务名称被简化为 ssh(出于历史兼容性),但实际调用的进程仍是 sshd

apt update和apt upgrade的关系

sudo apt update 更新系统安装包列表,没有更新安装包

sudo apt upgrade -y -y 表示下面问问题都回答yes; 更新安装包;可能会占用很大的内存

apt upgrade报错:“E: 您在 /var/cache/apt/archives/ 上没有足够的可用空间”

在这里插入图片描述

解决方案:使用软链,换个更大的地方存:

在这里插入图片描述

df -h // 看看哪个剩余空间大
sudo mkdir /dev/shm/cache // 在空间大的目录下创建
sudo rm -rf /var/cache/apt/archives // 删除原文件,原文件在 / 下,所以新文件夹建在其他mounted on下
sudo ln -s /dev/shm/cache /var/cache/apt/archives // 创建软链
sudo apt upgrade // 重新执行失败命令

开启ssh步骤

步骤一sudo apt update // 更新系统软件包列表和源信息

步骤二sudo apt install openssh-server -y // -y 表示所有的问题选yes

在这里插入图片描述

步骤三sudo systemctl start ssh // 启动ssh

步骤四sudo systemctl status ssh // 查看当前状态

在这里插入图片描述

步骤五sudo systemctl enable ssh.service

再次查看状态:sudo systemctl status ssh

在这里插入图片描述

步骤六passwd // 设置密码(普通用户)

如果没设置过,命令passwd就会直接输入新密码;如果修改过密码,命令passwd需要先输入当前密码,再设置新密码。

忘记当前密码, 强制修改密码: sudo passwd $username;查看当前用户命令:whoami

步骤七sudo systemctl enable ssh 设置开机自启

步骤八ip a 查看当前ip

在这里插入图片描述

步骤九ssh $username@ip 尝试连接服务

错误排查

查看日志

sudo tail -f /var/log/auth.log 实时查看日志,尝试连接时此处会实时打印相应日志;sudo systemctl status ssh 也能在底部看到实时日志

常见错误:

  • Failed password for username 密码错误
  • Permission denied(publickey) 未允许密码登录
  • User Username not allowed because shell is /bin/false 用户shell被禁用

注意:错误信息是参考,比如密码错误日志不一定是密码错误

修改sshd_config文件

sudo apt install vim 
sudo vim /etc/ssh/sshd_config

# 修改/etc/ssh/sshd_config文件
# 搜索: /PasswordAuthentication  //(/表示搜索)
# 设置:PasswordAuthentication yes
# 注意:默认不允许root用户账号密码访问,需要设置PermitRootLogin yes

sudo systemctl restart ssh // 重启ssh服务,以应用更改

允许防火墙通过22端口

sudo ufw status 查看防火墙是否开启;若为inactive,表示未开启仅应用底层规则,相当于允许所有端口通过;

在这里插入图片描述

若开启防火墙了,需要允许ssh端口通过

sudo ufw allow ssh // 规则变更后立即生效,无需重启防火墙;如果修改配置文件,需要手动重启

开启后,通过sudo ufw status查看开启状态,示例:

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到