Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384{ pkgs, lib, ... }:let inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey ;
setUpPrivateKey = name: '' ${name}.succeed( "mkdir -p /root/.ssh", "chmod 700 /root/.ssh", "cat '${snakeOilPrivateKey}' > /root/.ssh/id_snakeoil", "chmod 600 /root/.ssh/id_snakeoil", ) ${name}.wait_for_file("/root/.ssh/id_snakeoil") '';
sshOpts = "-oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oIdentityFile=/root/.ssh/id_snakeoil";
in{ name = "tmate-ssh-server"; nodes = { server = { ... }: { services.tmate-ssh-server = { enable = true; port = 2223; openFirewall = true; }; }; client = { ... }: { environment.systemPackages = [ pkgs.tmate ]; services.openssh.enable = true; users.users.root.openssh.authorizedKeys.keys = [ snakeOilPublicKey ]; }; client2 = { ... }: { environment.systemPackages = [ pkgs.openssh ]; }; }; testScript = '' start_all()
server.wait_for_unit("tmate-ssh-server.service") server.wait_for_open_port(2223) server.wait_for_file("/etc/tmate-ssh-server-keys/ssh_host_ed25519_key.pub") server.wait_for_file("/etc/tmate-ssh-server-keys/ssh_host_rsa_key.pub") server.succeed("tmate-client-config > /tmp/tmate.conf") server.wait_for_file("/tmp/tmate.conf")
${setUpPrivateKey "server"} client.wait_for_unit("sshd.service") client.wait_for_open_port(22) server.succeed("scp ${sshOpts} /tmp/tmate.conf client:/tmp/tmate.conf")
client.wait_for_file("/tmp/tmate.conf") client.wait_until_tty_matches("1", "login:") client.send_chars("root\n") client.sleep(2) client.send_chars("tmate -f /tmp/tmate.conf\n") client.sleep(2) client.send_chars("q") client.sleep(2) client.send_chars("tmate display -p '#{tmate_ssh}' > /tmp/ssh_command\n") client.wait_for_file("/tmp/ssh_command") ssh_cmd = client.succeed("cat /tmp/ssh_command")
client2.succeed("mkdir -p ~/.ssh; ssh-keyscan -4 -p 2223 server > ~/.ssh/known_hosts") client2.wait_until_tty_matches("1", "login:") client2.send_chars("root\n") client2.sleep(2) client2.send_chars(ssh_cmd.strip() + "\n") client2.sleep(2) client2.send_chars("touch /tmp/client_2\n")
client.wait_for_file("/tmp/client_2") '';}