事前に作って置いた公開鍵を、今までは teraterm(ttssh) とか putty とかで gui な環境の端末エミュレータ使って、cat(1) で表示させた後(クリップボードにコピー)にターゲットのホストにログインして ~/.ssh/authorized_keys へ追記(クリップボードからペースト)させていたのだが、なんとなくコマンドラインだけで済まとうなり ssh-copy-id(1) が上手く使いこなせんけぇ、以下の様なスクリプトを書いてみた。
SSHKEYCOPY.sh
#!/bin/sh
#
# ssh 公開鍵転送支援スクリプト
# 2025/01/16 by JE3KMZ
PREFIX=id_
SUFFIX=.pub
TARGETHOST=$1
usage()
{
echo `basename $0`
echo Usage: TARGET_HOST [TARGET_USERNAME]
exit 2
}
quit()
{
echo Done.
exit 0
}
about()
{
echo About.
exit 1
}
test $# -eq 0 && usage
test $# -eq 2 && USER=$2
cd ~/.ssh
for key in ed25519 ecdsa rsa dsa ed25519-sk
do
test -f ${PREFIX}${key}${SUFFIX} && cat ~/.ssh/${PREFIX}${key}${SUFFIX} |\
ssh ${USER}@${TARGETHOST} "mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys" |\
quit
done
about
一応、FreeBSD 14.2-RELEASE な環境しか確認しちょりませんが、なんとなく他のディストリビューションでも動く気配が有るようにしたつもりじゃ