From e994994c3865b7342ac0f1e8d0cc257e43259dbc Mon Sep 17 00:00:00 2001 From: accel Date: Tue, 11 Jan 2022 21:17:16 +0300 Subject: [PATCH] wip zssh --- zssh.funcs.zsh | 52 ++++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/zssh.funcs.zsh b/zssh.funcs.zsh index 9274df7..a8831fd 100644 --- a/zssh.funcs.zsh +++ b/zssh.funcs.zsh @@ -14,7 +14,7 @@ function zssh_configure () { if [[ -n "$zssh_host" ]] then - zshlibs_log zssh "zssh_host is set" + zshlibs_log zssh_configure "zssh_host is set" zshlibs_ensure -d $zssh_private_keys zshlibs_ensure -d $zssh_private_configs zshlibs_ensure -d ${zssh_global_configs} @@ -22,24 +22,23 @@ function zssh_configure () zssh_enumeratenodes if [[ ${#zssh_host_config_accesses} -gt 0 ]] then - zshlibs_log zssh "zssh_host_config_accesses is set" - zshlibs_log zssh "global our pubkey directory is $(zssh_host_info -K)" - zshlibs_log zssh "global our config directory is $(zssh_host_info -c)" + zshlibs_log zssh_configure "zssh_host_config_accesses is set" + zshlibs_log zssh_configure "global our pubkey directory is $(zssh_host_info -K)" + zshlibs_log zssh_configure "global our config directory is $(zssh_host_info -c)" typeset -g zssh_global_config_hostdir="${zssh_global_configs}/${zssh_host}" typeset -g zssh_global_pubkey_hostdir="${zssh_global_pubkeys}/${zssh_host}" zshlibs_ensure -d $(zssh_host_info -K) #"${zssh_global_pubkey_hostdir}" zshlibs_ensure -d $(zssh_host_info -C) # "${zssh_global_config_hostdir}" else - zshlibs_log zssh "zssh_host_config_accesses is NOT set, not going to bother accepting keys" + zshlibs_log zssh_configure "zssh_host_config_accesses is NOT set, not going to bother accepting keys" fi else - zshlibs_log zssh "zssh_host is NOT set, which means we cannot neither publish keys nor accept them" + zshlibs_log zssh_configure "zssh_host is NOT set, which means we cannot neither publish keys nor accept them" fi } function zssh_host_info() { - local=ssh_node=${zssh_host} zssh_node_info ${zssh_host} $@ } @@ -88,17 +87,17 @@ function zssh_process() then if [[ ${#zssh_host_config_accesses} -gt 0 ]] then - zshlibs_log zssh "processing ssh server setup" + zshlibs_log zssh_server "processing ssh server setup" if [[ "${HOME}/.config/zsh/local.config.zsh" -nt $(zssh_host_info -c) ]] then - zshlibs_log zssh "publishing our configs …" + zshlibs_log zssh_server "publishing our configs …" zssh_publish_configs else - zshlibs_log zssh "no need to publish our configs" + zshlibs_log zssh_server "no need to publish our configs" fi zssh_check_pubkeys fi - zshlibs_log zssh "processing ssh client setup" + zshlibs_log zssh_client "processing ssh client setup" zssh_install_peers zssh_publish_pubkeys fi @@ -107,6 +106,8 @@ function zssh_process() function zssh_check_pubkeys() { [[ ${#zssh_host_config_accesses} -gt 0 ]] || return 62 + zshlibs_log zssh_server "checking received pubkeys …" + zshlibs_log zssh_server "done checking received pubkeys" } function zssh_install_peers() @@ -123,10 +124,12 @@ function zssh_install_peers() function zssh_publish_pubkeys() { + zshlibs_log zssh_client "pushing out pubkey to parties …" for ssh_node in $zssh_nodes do zssh_mail_pubkey2 $ssh_node done + zshlibs_log zssh_client "done pushing out pubkey to parties" } function zssh_mail_pubkey2() @@ -136,23 +139,25 @@ function zssh_mail_pubkey2() if ! [[ $(zssh_node_info ${ssh_node} -k) -ot "$(zssh_node_info ${ssh_node} -K)/$zssh_host.key.pub" ]] then zshlibs_ensure -d $(zssh_node_info ${ssh_node} -K) - zshlibs_log zssh "sending '$(zssh_node_info ${ssh_node} -k) to '$(zssh_node_info ${ssh_node} -K ${zssh_host})'" + zshlibs_log zssh_client "sending '$(zssh_node_info ${ssh_node} -k) to '$(zssh_node_info ${ssh_node} -K ${zssh_host})'" cp $(zssh_node_info ${ssh_node} -k) (zssh_node_info ${ssh_node} -K ${zssh_host}) else - zshlibs_log zssh "'$(zssh_node_info ${ssh_node} -K ${zssh_host})' already mailed" + zshlibs_log zssh_client "'$(zssh_node_info ${ssh_node} -K ${zssh_host})' already mailed" fi } function zssh_publish_configs() { [[ "${#zssh_host_config_accesses}" -gt 0 ]] || return 62 + zshlibs_log zssh_server "generating access configs for parties …" for sshmatch in ${(k)zssh_host_config_accesses} do - zshlibs_log zssh "generating our server access config '$(zssh_host_info -E ${sshmatch})'" # '${hostaccessconfig_file}'" - zssh_generate_hostaccessconfig $sshmatch > "$(zssh_host_info -E ${sshmatch})" # "$hostaccessconfig_file" + zshlibs_log zssh_server "generating our server access config '$(zssh_host_info -E ${sshmatch})'" + zssh_generate_hostaccessconfig $sshmatch > "$(zssh_host_info -E ${sshmatch})" done - zshlibs_log zssh "updating mtime for $(zssh_host_info -C)" + zshlibs_log zssh_server "updating mtime for $(zssh_host_info -C)" touch "$(zssh_host_info -C)" + zshlibs_log zssh_server "done generating access configs for parties" } function zssh_generate_hostaccessconfig() @@ -177,22 +182,23 @@ function zssh_generate_config4 ssh_node="$1" dst="$zssh_private_configs/$ssh_node.sshconf" srcs="$zssh_global_configs/$ssh_node" - zshlibs_log zssh "checking configs for $ssh_node …" - if [[ -d "$srcs" ]] && ! [[ $dst -nt $srcs ]] + zshlibs_log zssh_client "checking configs for $ssh_node …" + if ! [[ -d "$srcs" ]] + then + zshlibs_log zssh_client "$ssh_node does not have config" + elif ! [[ $dst -nt $srcs ]] then sshkey="$zssh_private_keys/$ssh_node.key" - zshlibs_log zssh "found fresh configs directory for $ssh_node" - zshlibs_log zssh "config destination is '$dst'" - zshlibs_log zssh "tied ssh key is '$sshkey'" + zshlibs_log zssh_client "generating '$dst' with key '$sshkey'" rm "$dst" 2> /dev/null for src in "$srcs"/*.sshconf(N) do - zshlibs_log zssh "sourcing $src" + zshlibs_log zssh_client "sourcing $src" cat "$src" >> "$dst" printf "\n IdentityFile %s\n\n" "$sshkey" >> "$dst" done fi - zshlibs_log zssh "done with $ssh_node" + zshlibs_log zssh_client "done with $ssh_node" } function zssh_generate_privkey4