1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ssh 公開鍵を目的の鯖にコピーするスクリプト

Last updated at Posted at 2025-01-16

事前に作って置いた公開鍵を、今までは 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 な環境しか確認しちょりませんが、なんとなく他のディストリビューションでも動く気配が有るようにしたつもりじゃ

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?