我有带有 nixos 的机器(使用 terraform, config 配置),我想使用deployment.targetHost = ipAddress
和连接到它deployment.targetEnv = "none"
但我无法将 nixops 配置为使用/secrets/stage_ssh_key
ssh 密钥
这不起作用(实际上这没有记录,我在这里找到了它https://github.com/NixOS/nixops/blob/d4e5b779def1fc9e7cf124930d0148e6bd670051/nixops/backends/none.py#L33-L35)
{
stage =
{ pkgs, ... }:
{
deployment.targetHost = (import ./nixos-generated/stage.nix).terraform.ip;
deployment.targetEnv = "none";
deployment.none.sshPrivateKey = builtins.readFile ./secrets/stage_ssh_key;
deployment.none.sshPublicKey = builtins.readFile ./secrets/stage_ssh_key.pub;
deployment.none.sshPublicKeyDeployed = true;
environment.systemPackages = with pkgs; [
file
];
};
}
nixops ssh stage
导致要求输入密码,预期 - 无密码登录
nixops ssh stage -i ./secrets/stage_ssh_key
按预期工作,不询问密码
如何重现:
- 下载回购
rm -rf secrets/*
在中添加 aws 键
secrets/aws.nix
{ EC2_ACCESS_KEY="XXXX"; EC2_SECRET_KEY="XXXX"; }
nix-shell
make generate_stage_ssh_key
terraform apply
make nixops_create
nixops deploy
询问密码