wip zssh
This commit is contained in:
parent
a912b4a00a
commit
e994994c38
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user