Debian 9 配置密钥登录错误 && 正确姿势

首先,Debian 9 Stretch的OpenSSH(版本 SSH-2.0-OpenSSH 7.4p1 Debian-10+deb9u1) 取消了兼容SSH 1 protocol

如果你从Debian 8 Jessie 升级到Debian 9 Stretch的话,而且SSH配置文件没改,还有RSAAuthentication yes的话

那么你systemctl status ssh或者直接cat /var/log/auth.log | grep Deprecated的时候

你会发现有Deprecated字样

比如:

Jan 16 12:53:57 tucano systemd[1]: Starting OpenBSD Secure Shell server...
Jan 16 12:53:57 tucano sshd[14680]: /etc/ssh/sshd_config line 33: Deprecated option RSAAuthentication
Jan 16 12:53:57 tucano sshd[14680]: /etc/ssh/sshd_config line 40: Deprecated option RhostsRSAAuthentication
Jan 16 12:53:57 tucano systemd[1]: Started OpenBSD Secure Shell server.

当然还有可能会有Deprecated option KeyRegenerationInterval一类的

对于RSAAuthentication还好一些,因为你(可能)会发现还有一行reprocess config line xx: Deprecated option RSAAuthentication

//这是之后版本修复的(openssh/1:7.4p1-6),因为如果Jessie升级到Stretch(保留原来的配置文件)不支持这一行的话,那么会导致升级之后无法密钥登入(openssh/1:7.4p1-5),而如果禁用了密码登入那这服务器就直接失联了

###########################################

废话(预热)讲完,来讲讲怎么以正确的姿势来XOXOXOO Lesbian 9

首先如果你升级到Debian9的话,那么提示你要保留自己的配置文件(ssh_config/sshd_config)还是安装包维护者的配置文件版本,那直接Install package Maintainer’s version就可以了,升级完成reboot之后用密码登入。

//如果原先有仔细的配置好.ssh目录以及authorized_keys文件的权限,那么就可以直接密钥登入,(Optional/可选的)注意登入之后修改/etc/ssh/sshd_config,关掉密码登入。

需要注意的一点是,Debian9的OpenSSH对于权限的配置似乎有很强硬的态度,如果你home dir下的.ssh目录以及里面的authorized_keys文件权限配置不正确的话,根本不会鸟他。

登入之后首先

chmod 755 .ssh

chmod 644 .ssh/authorized_keys

//注意owner还是当前用户,不是root

 

(Optional/可选的)然后编辑/etc/ssh/sshd_config

找到PasswordAuthentication 和 UsePAM

取消注释并且把yes改成no

 

reboot或者systemctl restart ssh完事

###########################################

对于全新配置,创建.ssh文件夹,创建authorized_keys文件,把生成的pub文件内容复制粘贴进去或者scp上去。

权限配置就按照上面的来。

 

###########################################

最近点很背,要干个什么事先踩一堆bug再说

很不幸这次碰上了ssh-agent bug(

sign_and_send_pubkey: signing failed agent refused operation

然后发现这货不知道为什么被锁死了

reboot之后好了。。。。

apt update发现500多个包没更新,发现这货也是其中一个。。。。。赶紧更了了事

结果又遇上网络不稳定,USTC MIRROR速度5KB/s。。。

淦。。。。。。。。。

 

//附錄:

Debian bug reports log: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851573

Debian OpenSSH Server commit log: https://anonscm.debian.org/cgit/pkg-ssh/openssh.git/commit/?id=fb87db8aa47d3508be8e5bb1d21897fa1f2eca90

 

#########################################################

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
#########################################################


by