EKsumic's Blog

let today = new Beginning();

Click the left button to use the catalog.

OR

etc/ssh/ssh_config文件详解

注:该文章是新手向的,所以会解释一些非常基础的东西。【将不定期补充内容】


操作之前:保证安装了vim

安装vim是为了更加清楚地查看该文件。

 

 

#默认为注释符号,不参与作用

#没有;作为分隔符,默认以一行为分隔

#起作用的代码,一般会变成橘黄色;无作用的代码,默认是淡蓝色

 


优先提醒:目前是SSH 2代协议,所以你应该找不到RSAAuthentication,这个是1代的,已经废除了。

Ubuntu 18.04 默认使用的是SSH 2代协议。


不需要再去纠结 RSAAuthentication 选项,

实际上认为,你只要打开了公钥认证,那基本上就是默认开启了RSA。


淡蓝色的但是没有起作用的,应该都是默认值,只有你想和默认值不一样,才需要解除注释。

PermitRootLogin 参数
指定 root 是否可以用 ssh 登录。参数值必须是“yes”、“prohibit-password”、“without-password”、“orced-commands-only”或者“no”。默认值是“prohibit-password”。

 

编辑 /etc/ssh/sshd_config 文件,确保以下内容出现在文件中:
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

来自博文:[Linux] 如何禁止使用口令只允许使用密钥建立 SSH 连接

 


为什么要确保以上这些内容?
原博文并没有解释,所以我自己去查了一下资料,参考链接在末尾。

 

 

ChallengeResponseAuthentication是什么?
Challenge/Response挑战回应认证,简单来讲,就是当你认证过一次之后,
连接成功了,然后还会有后续的不定时发起的验证,
这个东西目的是防止客户端成功连接服务器后,客户端被伪造,
所以一定会给通过认证的客户端,发送一个暂时的令牌,然后在本次会话中不定时验证客户端身份。

 

 

UsePAM 是什么?
UsePAM:PAM是Unix的登陆机制,默认是开着的(by Ubuntu18.04 SSH 2代),
PAM检验的优先级高于PasswordAuthentication(密码验证),
PAM(插入式验证模块(Pluggable Authentication Module,PAM)),
简单来讲是个额外的验证模块,如果你想使用别的生物验证,比如虹膜验证,有这个模块在就很方便。

 

 

 

我的建议是:

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM yes

 

 

默认文件的内容:

PermitRootLogin yes  --默认是no,当管理员有且仅有你1个人的时候,建议打开,不然会很不方便
PubkeyAuthentication yes   --这个默认是no,开启了就等于开了RSA验证,这是SSH 2代的特性
PasswordAuthentication no  --这个默认是yes,当你开了公钥验证后,建议no
ChallengeResponseAuthentication no  --这个默认是no,如果想更加安全的话,先去了解相关知识再改yes


UsePAM yes    --既然默认是yes,也就不用管了

 

X11Forwarding yes   --上古时期的东西了,和GUI相关的,现在不需要了解
PrintMotd no   --选项PrintMotd指定当用户以交互方式登录时,ssh守护程序是否应打印/ etc / motd文件的内容。

 

AcceptEnv LANG LC_*    --允许客户端发送环境变量
Subsystem sftp /usr/lib/openssh/sftp-server   --猜测是允许sftp,设的sftp的路径

——来自Linuxtopia:Configure the /etc/ssh/sshd_config file

 

 

 

参考文档:
[1] Ubuntu 安装 SSH,并开启 root 远程登录

[2] SSH安全加固

[3] 保护 SSH 的三把锁

This article was last edited at 2020-05-17 08:28:24

* *