鍵交換でのssh接続

sshログインの鍵交換のためのスクリプト書いて使ってました。

#!/bin/sh

KEY_TYPE='rsa'
KEY_NAME="${HOME}/.ssh/id_rsa"
AUTHORIZED_KEY='.ssh/authorized_keys'
TMP=`date +%s.pub`

echo "host:"
read HOST_NAME

echo "host user name:"
read USER_NAME

## 鍵が無ければ作成する
[ -s $KEY_NAME ] || ssh-keygen -t ${KEY_TYPE} -P ''

## 公開鍵をリモートホストにコピー
echo "scp ${KEY_NAME}.pub ${USER_NAME}@${HOST_NAME}:./${TMP}"
scp ${KEY_NAME}.pub ${USER_NAME}@${HOST_NAME}:./${TMP}
echo "ssh ${USER_NAME}@${HOST_NAME} \"cat ./${TMP} >> ${AUTHORIZED_KEY} && chmod 644 ${AUTHORIZED_KEY} && rm ./${TMP}\""
ssh ${USER_NAME}@${HOST_NAME} "cat ./${TMP} >> ${AUTHORIZED_KEY} && chmod 644 ${AUTHORIZED_KEY} && rm ./${TMP}"

exit 0

が、最近ansibleについて調べていた時に初めて知りました。

linux.die.net

brew install ssh-copy-id

からの

ssh-copy-id [-i ~/.ssh/id_rsa.pub] <username>@<host>

これだけですみました