我想最大程度地锁定 Arch Linux 用户帐户。该帐户所需的唯一功能是接受非终端 SSH 会话,该会话允许客户端创建通往互联网的隧道。
情况是我想与几个朋友分享我的远程连接。我将为他们提供该帐户的 SSH 密钥,并根据需要配置他们的程序。
复杂的是,我不想 100% 相信他们保护密钥文件的能力。我宁愿将妥协的潜在损害降到最低,同时它仍然是假设的 - 并借此机会了解有关安全性的更多信息。
有什么方法可以实现完全隔离和/或锁定的帐户吗?我可以允许 SSH 连接但拒绝终端访问吗?
我很感激任何帮助!
答案1
当您将密钥添加到文件时,authorized_keys
您可以使用多个选项来限制该密钥的功能。在这种情况下,您可以禁止运行任何命令。只需在其前面加上command=""
.
例如:
command="" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDc7nKsHpuC6W/U131p0yDh455sLE9pWmFxdK...
当用户想要连接时,他们必须传递-N
到ssh
.这告诉ssh
客户端不要尝试运行命令,而只是打开连接(如果已配置,则进行隧道传输)。如果客户端在没有 的情况下启动-N
,它将立即断开连接。
例如:
ssh -N -D 8080 host.example.com