文章目录
确认当前用户为普通用户 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 服务器的守护进程名称为sshd
(Secure 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
查看开启状态,示例: