shell - 仅使用 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文件中。有任何想法吗 ?
解决方案
推荐阅读
- opendaylight - 如何在 Opendaylight 中操作 YANG 生成的 REST API GET?
- c++ - 编译Qt项目,报错QQmlEngine: No such file or directory 编译终止
- twilio - Twilio - 如何在我的应用程序中获取请求检查员?
- javascript - Angular - Map/Catch 返回相同的值但收到错误
- javascript - setInterval 会阻止/干扰 node.js/express HTTP 服务器吗?
- python - 仅转置数据框中的几列和几行
- google-chrome-extension - 使用 Web 扩展清除 HTTP Basic Auth
- python - 通过在 pandas 中保留小时数进行分组
- c - 如果有两个空格,则将其计为 3 个单词
- python - Django 根据列表值过滤对象