首页 > 解决方案 > 仅使用 git bash 的 ssh 公钥共享

问题描述

我不想制作一个脚本来从两个远程服务器检索公钥并相互共享它们。问题是我不允许安装任何工具,但 git bash因此我无权访问 sshpass 之类的东西......

这是我的脚本

#!/bin/bash

clear

#Server 1 id
read -p "Usr name srv 1 (root if empty): " usrname1;
usrname1=${usrname1:-root}
read -p "Ip srv1 : " ip1;

#Server 2 id
read -p "Usr name srv 2 (root if empty)" usrname2;
usrname2=${usrname2:-root}
read -p "Ip srv2 : " ip2;


echo ""


read -p "(Re)generate key ? (y/n)" choice;

case $choice in
   y)
       ssh $usrname1@$ip1 'ssh-keygen -f ~/.ssh/id_rsa'
       ssh $usrname2@$ip2 'ssh-keygen -f ~/.ssh/id_rsa'
       ;;
       
   *)
       scp $usrname2@$ip2:~/.ssh/id_rsa.pub ~/
       ssh $usrname1@$ip1 'cat >>.ssh/authorized_keys' < ~/id_rsa.pub

       scp $usrname1@$ip1:~/.ssh/id_rsa.pub ~/
       ssh $usrname2@$ip2 'cat >>.ssh/authorized_keys' < ~/id_rsa.pub

esac

所以这个脚本可以工作,但我必须为每台服务器写 3 次密码,这似乎太多了。我在shell中相当新,我找不到在keygen期间不询问密码的方法,检索密钥并将其添加到每个服务器的authorized_keys文件中。有任何想法吗 ?

标签: shellsshgit-bashpublic-key

解决方案


推荐阅读