我想知道 ssh 在客户端-服务器连接中使用的对称加密类型(身份验证后)。我不确定谁决定加密。客户端还是服务器?
我查看了/etc/ssh/ssh_config
(在客户端)和/etc/ssh/sshd_config
(在服务器上),但什么也没有。
答案1
ssh_config
(客户端配置)和sshd_config
(服务器配置)都有一个Ciphers
确定支持的密码的选项。如果该选项未出现在配置文件中,则应用内置默认值。它在您的版本的手册页中提到(除非您的发行版在编译时调整了列表而没有更新手册页)。给定连接的实际密码根据以下条件确定RFC 4253:
每个方向所选择的加密算法必须是客户端名单上的第一个算法,该算法也在服务器的名单上。
您可以通过运行查看双方必须提供的内容以及为给定连接选择的密码ssh -vv
。
答案2
客户端和服务器都必须就使用哪种密码达成一致,因此没有人真正“确定”加密——两个配置文件都有一个Ciphers
选项。
您可以使用以下命令查看使用的密码ssh -vv
:
$ ssh -vv guthrie
[...]
debug2: mac_setup: found hmac-md5
debug1: kex: server->client aes128-ctr hmac-md5 none
debug2: mac_setup: found hmac-md5
debug1: kex: client->server aes128-ctr hmac-md5 none
[...]