受限 sftp 用户无法连接的问题

由于业务需要,我按照 这篇文章 的提示设置了一个无 shell 权限的用户,但是却连接不上。

启用 -v 选项后有如下输出

debug1: Authentication succeeded (password).
Authenticated to xx.xx.xx.xx ([xx.xx.xx.xx]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
Connection to xx.xx.xx.xx closed by remote host.
Transferred: sent 2444, received 1804 bytes, in 0.0 seconds
Bytes per second: sent 13890079.9, received 10252743.1
debug1: Exit status -1
Couldn’t read packet: Connection reset by peer

很苦恼,谷歌了很久后终于发现了两篇文章:https://unix.stackexchange.com/questions/274995/sftp-ssh-couldnt-read-packet-connection-reset-by-peerhttps://ubuntuforums.org/showthread.php?t=1482005

主要意思是说,在 /etc/ssh/sshd_config 里设置的 ChrootDirectory 的所有者必须是 root,而且该目录的组和其他用户不能有写权限。

Nginx配置反向代理404

今天用Nginx配置到Node.js和Hexo的反向代理,发现除了 / 可以访问,其他都404,我很纳闷啊。
搜遍各种资料都无用。
后来发现是我配置文件里多了一句
try_files $uri $uri/ =404;
蛋疼,浪费我一晚上。终于可以睡了。

UEFI启动模式修复ubuntu引导

今天在移动硬盘上安装ubuntu,却把引导装错了,导致本机ubuntu引导不了。
开始尝试用grub-install修复却发现无法成功。

使用
$ sudo fdisk -l
发现一个奇怪的分区(其实以前也发现,但没注意),Name是EFI system partition.
挂载之,发现有个文件夹叫BOOT,遂感觉有问题。
又在EFI目录下发现有个文件夹ubuntu,其中有个文件grub.cfg,内容大概是这样的:

search.fs_uuid b6fcadd1-32ba-4448-acb0-7e66595ee3a1 root hd1,gpt2 
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

至此,我发现端倪了,hd1,gpt2应该是定位到移动硬盘的系统去了,本机的系统应该是hd0,gpt8(依具体情况而定),我把前面的uuid改了、后面改成hd0,gpt8后。
重启系统。真棒,我的ubuntu回来了。

后记: 后来在网上查EFI,然后引出了UEFI什么的,具体我还没看,故标题可能有误。