首页
统计
留言
Search
1
Konsole 和 oh-my-zsh 的配置与使用
2,021 阅读
2
wsl2使用windows下v2ray的代理
1,493 阅读
3
docker启动报错
1,050 阅读
4
ubuntu有些软件无法使用搜狗输入法
927 阅读
5
Kubuntu 配置多桌面快捷键
768 阅读
全部
PHP
Linux
软路由
杂项
Sql
Go
登录
Search
标签搜索
kubuntu
docker
mysql
pgsql
git
csv
shell
wine
linux
oh-my-zsh
wps
gost
起名
redis
ip
crontab
mac
nginx
wss
docker-compose
JyPony
累计撰写
57
篇文章
累计收到
20
条评论
首页
栏目
全部
PHP
Linux
软路由
杂项
Sql
Go
页面
统计
留言
搜索到
31
篇与
的结果
2026-07-28
Ubuntu SSH 密钥登录免密 Sudo 与密码登录有密 Sudo 配置教程
Ubuntu 服务器初始化安全加固与免密 Sudo 配置教程本教程包含 Ubuntu 服务器的完整安全加固流程:创建新用户、配置 SSH 密钥登录、禁用 Root 直接登录、修改 SSH 默认端口,并最终实现:通过 SSH 密钥登录的用户免密 sudo,而通过密码登录的用户必须输入密码。🛠️ 整体配置原理基础加固:弃用默认的 root 账户与 22 端口,改用高权限普通用户与自定义端口,阻断 99% 的自动化暴力破解。免密分流:利用 Linux 的 PAM (Pluggable Authentication Modules) 机制与 SSH 的 ExposeAuthInfo 特性。密钥登录成功后会在内存中生成认证标记文件,sudo 检测到标记则自动放行;密码登录无标记,则强制要求输入密码。📂 第一部分:用户创建与密钥配置💡 本部分操作假设你当前以 root 身份登录在服务器上。1. 创建新用户并赋予基础 Sudo 权限创建一个你自己的高权限账户(将 myuser 替换为你想要的用户名):# 创建用户并根据提示设置密码 adduser myuser # 将用户加入 sudo 组 usermod -aG sudo myuser2. 在本地电脑生成并配置 SSH 密钥请在你的本地电脑(客户端)终端中执行以下操作:生成高强度的 Ed25519 密钥对(一路回车即可,无需设置 key 密码):ssh-keygen -t ed25519 -f ~/.ssh/id_ubuntu_server将公钥上传至服务器的新用户下(将 myuser 和 server_ip 替换为实际值):ssh-copy-id -i ~/.ssh/id_ubuntu_server.pub myuser@server_ip测试能否用密钥成功登录(此时仍需默认 22 端口):ssh -i ~/.ssh/id_ubuntu_server myuser@server_ip确认成功登录后,再继续后续步骤。📂 第二部分:安全加固(修改端口与禁用 Root)⚠️ 重要提示:如果服务器开启了防火墙(如 ufw)或云服务商的安全组,必须先放行新端口(例如 2222),否则修改后将无法连接!sudo ufw allow 2222/tcp1. 修改 SSH 服务配置文件在服务器上打开 SSH 配置文件:sudo nano /etc/ssh/sshd_config在文件中修改或添加以下核心配置(部分配置可能已被注释,请取消 # 并修改):# 1. 修改默认端口(建议选择 1024-65535 之间的随机端口,例如 2222) Port 2222 # 2. 禁用 root 用户直接登录 PermitRootLogin no # 3. 确保开启密码登录(用于测试对照组,后期若追求极致安全可改为 no) PasswordAuthentication yes # 4. 开启 PAM 模块与认证信息传递(免密 sudo 的核心前提) UsePAM yes ExposeAuthInfo yes2. 重启 SSH 服务sudo systemctl restart ssh注意:此时不要断开当前的连接窗口!📂 第三部分:配置免密 Sudo 分流1. 修改 PAM 模块识别密钥打开 sudo 的 PAM 配置文件:sudo nano /etc/pam.d/sudo在文件的最顶端(第一行非注释行之前),添加以下核心配置:auth [success=done default=ignore] pam_exec.so quiet /usr/bin/test -e /run/user/\$PAM_USER/ssh-auth-info说明:此规则会检查是否存在密钥认证标记。若存在则直接放行 sudo;若不存在则交由后续的密码认证模块处理。保存并退出(Ctrl + O 回车,Ctrl + X)。2. 检查 sudoers 权限规则必须确保用户在 sudoers 中使用标准权限(有密),绝对不能配置 NOPASSWD。打开安全编辑器:sudo visudo检查文件末尾。如果你之前针对该用户写过带有 NOPASSWD 的规则,请将其删除。只需保持默认的 %sudo ALL=(ALL:ALL) ALL 即可。保存并退出。🧪 第四部分:完整验证与测试⚠️ 在测试完成前,千万不要关闭当前已经连上的 SSH 窗口! 请开新的本地终端窗口分别进行以下测试。验证 1:测试新端口与密钥登录(预期:免密 Sudo)在本地电脑通过新端口和密钥登录:ssh -p 2222 -i ~/.ssh/id_ubuntu_server myuser@server_ip登录后执行切换 root 命令:sudo su正确现象:直接进入 root 状态,不提示输入密码。验证 2:测试密码登录(预期:有密 Sudo)在本地电脑强制使用密码和新端口登录:ssh -p 2222 -o PubkeyAuthentication=no myuser@server_ip登录后执行切换 root 命令:sudo su正确现象:终端提示 [sudo] password for myuser:,必须正确输入密码才能切换。验证 3:测试 Root 阻断(预期:拒绝登录)尝试直接以 root 身份登录:ssh -p 2222 root@server_ip正确现象:终端直接返回 Permission denied,证明 root 已被成功保护。⚠️ 常见问题排查 (Troubleshooting)修改端口后连不上了?90% 的原因是因为云厂商控制台的“安全组/防火墙”没有开放你修改的新端口(如 2222)。请前往云面板添加放行规则。密钥登录的用户依然提示输入密码?请确认 /etc/pam.d/sudo 中的新增行是否写在了文件的绝对第一行。如果写在后面,会被前面的密码模块提前拦截。
2026年07月28日
11 阅读
0 评论
0 点赞
2025-10-13
按原来的文件夹递归,获取1小时内修改过的文件
按原来的文件夹递归,获取1小时内修改过的文件$ find /data/code/php/xxxx -name "*.php" -mmin -60 -exec cp --parents {} /tmp \;
2025年10月13日
74 阅读
0 评论
0 点赞
2025-09-15
自建邮箱pmail
仓库地址https://github.com/Jinnrry/PMail下载pmailcurl -L -O https://github.com/Jinnrry/PMail/releases/download/v2.8.7/linux_amd64.zip创建自启服务sudo vi /etc/systemd/system/pmail.service[Unit] Description=pmail [Service] ExecStart=/data/software/pmail/pmail_linux_amd64 Restart=always [Install] WantedBy=multi-user.target配置自启sudo systemctl enable pmail启动服务sudo systemctl start pmail特别注意25 端口可能被 CentOS 7 自带的 Postfix(master 进程)占用了,而且只监听在 localhost(127.0.0.1 和 ::1),说明它只是系统默认安装的空壳 MTA,几乎没啥用。 一键彻底解决(推荐做法,干净利落) Bash # 停掉并永久禁用系统自带的 postfix systemctl stop postfix systemctl disable postfix # 确认 25 端口已空 ss -ltnp | grep :25 # 应该什么都不输出 # 现在重启 pmail,它就能成功绑定 25 端口了 systemctl restart pmail systemctl status pmail
2025年09月15日
100 阅读
0 评论
0 点赞
2025-03-26
禁用dns解析,加快git ssh连接操作速度
指定git ssh走openvpn通道,通过禁用dns解析来加快连接速度。这是我的配置$ cat ~/.ssh/config Host github.com HostName github.com User JyPony IdentityFile ~/.ssh/id_rsa Host bitbucket.org HostName bitbucket.org User JyPony IdentityFile ~/.ssh/bitbuck_id_rsa Host bitbucket.orgtest HostName bitbucket.org User JyPony IdentityFile ~/.ssh/test_id_rsa Host gitee.com HostName gitee.com User JyPony IdentityFile ~/.ssh/gitee_id_rsa Host f-gitlab-l-g.jypony.com # 自建私有仓库 HostName f-gitlab-l-g.jypony.com User JyPony IdentityFile ~/.ssh/gitlab_id_rsa Protocol 2 # 禁用dns解析之后,速度变快 GSSAPIAuthentication no HostKeyAlgorithms +ssh-rsaopenvpn的配置$ cat /etc/openvpn/hk.conf client dev tun proto udp remote vpn.jypony.com 1194 resolv-retry infinite nobind persist-key persist-tun <ca> -----BEGIN CERTIFICATE----- XXXXXXXXXXX -----END CERTIFICATE----- </ca> key-direction 1 <tls-auth> # # 2048 bit OpenVPN static key # -----BEGIN OpenVPN Static key V1----- XXXXXXXXXXX -----END OpenVPN Static key V1----- </tls-auth> tun-mtu 1500 reneg-sec 0 comp-lzo auth-nocache verb 3 auth-user-pass /etc/openvpn/credentials.txt route 10.0.0.0 255.0.0.0 # 以下是指定一个ip范围才走openvpn,xxx替换为自己需要指定的ip, 我这里配置的是git自建仓库的ip route xxx.xxx.xxx.0 255.255.255.0 route-nopull
2025年03月26日
218 阅读
0 评论
0 点赞
2024-02-27
使用shell模拟并发测试
使用shell模拟并发测试
2024年02月27日
337 阅读
0 评论
0 点赞
1
2
...
7