为 SSH 设定默认身份及禁用密码登录

Limonene Lv1

为 SSH 设定默认身份

当有多组 SSH 身份(公-私钥对)时,每次连接服务器都使用 -i 参数指定私钥略显繁琐,因此可以在配置文件中设定默认使用的私钥。

为特定服务器设定默认身份

~/.ssh/config 中,填入服务器配置:

1
2
3
4
5
Host <friendly name>
HostName <IP or hostname of server>
User <user to login>
Port <port to use>
IdentityFile <path to private key>

只要填入 IdentityFile 字段,即可实现为此服务器指定默认身份。

为全部服务器设定默认身份

如果只有一两个服务器使用其他身份,而现在以及未来使用的大部分服务器都使用一个身份,那可以在 ~/.ssh/config 中直接加入一行:

1
IdentityFile <path to private key>

这样,即使连接配置文件中未出现的服务器,SSH 也会默认使用在这里指定的私钥。

ssh-copy-id 设定默认身份

ssh-copy-id 默认使用最新创建的公钥文件 。因此,只需要 touch <path to public key> 即可让 ssh-copy-id 传输特定的公钥。

在服务器端禁止通过密码登录 SSH

openssh-server

使用 openssh-server 的服务器,sshd 的配置文件在 /etc/ssh/sshd_config/etc/ssh/sshd_config.d/ 下。想实现禁止密码登录,将 sshd_config

1
#PasswordAuthentication yes

修改为

1
PasswordAuthentication no

即可。或者也可以在 sshd_config.d 下创建新配置文件,并将上一行内容写入其中。

修改配置文件后,使用 sudo systemctl restart sshd 重启 SSH daemon,就可以重新载入配置。

OpenWRT 与 dropbear

OpenWRT 的默认 SSH 服务端是 dropbear。其配置文件位于 /etc/config/dropbear。将与密码相关的两行修改为 'off',即可实现禁止密码登录:

1
2
3
4
5
config dropbear
option PasswordAuth 'off'
option RootPasswordAuth 'off'
option Port '22'
# option BannerFile '/etc/banner'

修改配置文件后,使用 /etc/init.d/dropbear restart 重启 dropbear,就可以重新载入配置。

  • 标题: 为 SSH 设定默认身份及禁用密码登录
  • 作者: Limonene
  • 创建于 : 2024-01-03 15:04:02
  • 更新于 : 2024-01-23 19:57:29
  • 链接: https://limonene.top/2024-01-03/为-SSH-设定默认身份及禁用密码登录/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论